小奥的学习笔记

  • Home
  • Learning & Working
    • Speech Enhancement Notes
    • Programming language
    • Computer & DL
    • MOOC
  • Life
    • Life Time
    • Thinking & Comprehension
    • Volunteer
    • Plan
    • Travel
  • Footprints
  • GuestBook
  • About
    • About Me
    • 个人履历
    • 隐私策略
  1. 首页
  2. Study-notes
  3. Computer & DL
  4. Linux
  5. 正文

《鸟哥的Linux私房菜》(基础篇)笔记整理(第7章)Part.3

2019年1月5日 1078点热度 0人点赞 0条评论

四、设定开机挂载

系统挂载的一些限制:

①根目录/是必须挂载的﹐而且一定要先于其它mount point被挂载进来。

②其它mount point必须为已建立的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则(FHS)

③所有mount point在同一时间之内﹐只能挂载一次。

④所有partition在同一时间之内﹐只能挂载一次。

⑤如若进行卸除﹐您必须先将工作目录移到mountpoint(及其子目录)之外。

1.开机挂载/etc/fstab及/etc/mtab

我们查看一下/etc/fstab这个文件的内容,如图4.1所示。

图4.1 /etc/fstab的内容

磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。

系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。

除此之外,/etc/fstab还加入了dump这个备份用的命令支持,与开机时是否进行文件系统检查fsck等指令有关。

在鸟哥的书里面,这个文件的六列内容分别是:

[设备/UUID等]  [挂载点]  [文件系统]  [文件系统参数]  [dump]  [fsck]

但是在我的Ubuntu 18.04中,六列内容分别是:

[文件系统]  [挂载点]  [类型]  [选项]  [dump]  [fsck]

下面继续以鸟哥的内容来讲。

(1)第一列:磁盘设备文件名/UUID/LABEL名称:

这个字段可以填写的数据主要有三个项目:

①文件系统或磁盘的装置文件名,如 /dev/vda2 等;

②文件系统的 UUID 名称,如 UUID=xxx;

③文件系统的 LABEL 名称,例如 LABEL=xxx。

(2)第二列:挂载点。

(3)文件系统:如xfs/ext4/vaf/nfs等。

(4)文件系统参数

文件系统参数主要有以下几点

参数 内容意义
async/sync
异步/同步
设定磁盘是否以异步方式运作。预设为 async(效能较佳)
auto/noauto
自动/非自动
当下达 mount -a 时,此文件系统是否会被主动测试挂载。预设为auto。
rw/ro
可擦写/只读
让该分区以可擦写或者是只读的型态挂载上来,如果你想要分享的数据是不给用户随意变更的,这里也能够设定为只读。
exec/noexec
可执行/不可执行
限制在此文件系统内是否可以进行执行操作。如果纯粹用来储存数据,那么可以设定为noexec会比较安全。不过,这个参数也不能随便使用,因为你不知道该目录下是否默认会有可执行程序。
user/nouser
(不)允许用户挂载
是否允许用户使用mount指令来挂载呢?一般而言,我们当然不希望一般身份的user能使用mount。
suid/nosuid
(不)具有suid权限
该文件系统是否允许SUID的存在?如果不是执行文件放置目录,也可以设定为nosuid来取消这个功能。
defaults 同时具有rw,suid,dev,exec,auto,nouser,async等参数。基本上,预设情况使用defaults设定即可

(5)能否被dump备份指令作用。一般默认输入0。

(6)是否可以以fsck检查分区。

/etc/fstab是开机时的配置文件,不过,实际文件系统的挂载是记录到/etc/mtab与/proc/mounts这两个文件当中的。每次我们在更动文件系统的挂载时,也会同时更动这两个文件。但是,万一发生你在/etc/fstab输入的数据错误,导致无法顺利开机成功,而进入单人维护模式当中,那时候的/可是readonly的状态,当然你就无法修改/etc/fstab,也无法更新/etc/mtab,那怎么办?

答案是使用

mount -n -o remount,rw /

2.特殊设备loop挂载(镜像文件不刻录就挂载使用)

(1)挂载光盘/DVD镜像文件

下面以鸟哥将CentOS 7.x的DVD镜像文件挂到测试机上面的命令来做显示。

[root@study ~]# mkdir /data/centos_dvd[root@study ~]# mount -o loop /tmp/CentOS-7.0-1406-x86_64-DVD.iso /data/centos_dvd[root@study ~]# df /data/centos_dvdFilesystem     1K-blocks    Used Available Use% Mounted on/dev/loop0       4050860 4050860         0 100% /data/centos_dvd[root@study ~]# umount /data/centos_dvd/# 测试完成,卸载镜像文件

(2)新建大文件以制作loop设备文件

既然能够挂载DVD的镜像文件,那么我能不能制作出一个大文件,然后将这个文件格式化后挂载呢?好问题!这是个有趣的事情,能够帮助我们解决很多系统的分割不好的情况。

①建立大文件

假设我要在/srv/loopdev建立一个空的文件:

[root@study ~]# dd if=/dev/zero of=/srv/loopdev bs=1M count=512#这个指令的简单意义如下:#if是input file,输入文件。那个/dev/zero是会一直输出0的设备!#of是output file,将一堆零写入到后面接的文件中。#bs是每个block大小,就像文件系统那样的block意义;#count则是总共几个bs的意思。所以bs*count就是这个文件的容量了!

②大型文件格式化

预设xfs不能格式化文件,所以要加入特殊的参数。

[root@study ~]# mkfs.xfs -f /srv/loopdev[root@study ~]# blkid /srv/loopdev

③挂载

[root@study ~]# mount -o loop UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" /mnt

[root@study ~]# df /mnt

 

五、内存交换空间(swap)的构建

1.使用物理分区构建swap

(1)分区:使用gdisk在硬盘分出一个分区给系统作swap。由于Linux的gdisk预设会将分区的ID设定为Linux的文件系统,所以你可能还得要设定一下system ID。

(2)格式化:利用新建的swap格式的“mkswap 设备文件名”就可以格式化该分区称为swap格式。

(3)使用:最后将该swap设备启动,方法为:swapon 设备文件名。

(4)观查看:最后通过free与swapon -s来观察下内存使用情况。

执行命令如下:

2.使用文件构建swap(以建立一个128MB的swap空间为例)

(1)使用dd命令新增一个128MB的文件,在/tmp下面:

[root@study ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128

(2)使用mkswap将/tmp/swap格式化为swap的文件格式:

[root@study ~]# mkswap /tmp/swap

(3)使用swapon来讲/tmp/swap启动

[root@study ~]# swapon /tmp/swap

(4)使用swapoff关掉swap file,并设定自动启动

①设定自动启动:

[root@study ~]# nano /etc/fstab /tmp/swap  swap  swap  defaults  0  0

②关闭swap file

[root@study ~]# swapoff /tmp/swap /dev/vda6

 

六、文件系统的特殊查看与操作

1.磁盘空间的浪费问题

我们在前面提到过,一个block只能放置一个文件,因此太多小文件将会浪费非常多的磁盘容量。另外,整个文件系统中包括superblock,inode table以及其他metadata等其实都会浪费磁盘容量,所以我们建立xfs/ext4文件系统的时候,一挂载就有很多容量被用到了。

2.利用GNU的parted进行分区

虽然你可以使用gdisk/fdisk很快速的将你的分区分隔妥当,不过gdisk主要针对GPT而fdisk主要支持MBR,对GPT的支持还不够。所以使用不同的分区格式时,得要先查询到正确的分区表才能用适合的指令。那有没有同时支持的指令呢?答案是肯定的,那就是使用parted来进行分区。

parted常用语法如下所示:

[root@study ~]# parted [设备] [指令 [参数]]选项与参数:指令功能:新增分区:mkpart [primary|logical|extended] [ext4|vfat|xfs] 开始 结束显示分区:print删除分区:rm [partition]
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux 鸟哥的linux私房菜
最后更新:2019年1月5日

davidcheung

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

搜索
欢迎关注我的个人公众号
最新 热点 随机
最新 热点 随机
DEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架 奥地利匈牙利九日游旅程 论文阅读之Study of the General Kalman Filter for Echo Cancellation 小奥看房之鸿荣源珈誉府 杭州往返旅途及西溪喜来登和万怡的体验报告 2022年的第一篇碎碎念
奥地利匈牙利九日游旅程论文阅读之Study of the General Kalman Filter for Echo CancellationDEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架
Leetcode题目解析(191217):20&22&32 Python语言程序设计(第9周)知识点整理 Python网络爬虫与信息提取(第4周)知识点整理 已修:Python网络爬虫与信息提取【北京理工大学】[2018-08-21] 全国大学生英语四六级口语考生手册 Leetcode题目解析(191105)
标签聚合
linux 高中 Python 鸟哥的linux私房菜 python学习 算法 生活 学习 leetcode Java
最近评论
davidcheung 发布于 5 个月前(02月09日) The problem has been fixed. May I ask if you can s...
tk88 发布于 5 个月前(02月07日) Hmm is anyone else having problems with the pictur...
cuicui 发布于 9 个月前(10月20日) :wink:
niming 发布于 10 个月前(09月19日) 同级校友,能刷到太巧了
davidcheung 发布于 2 年前(08月16日) 我得找一下我之前整理的word文档看一下,如果找到了我就更新一下这篇文章。
Nolan 发布于 2 年前(07月25日) 您的笔记非常有帮助。贴图不显示了,可以更新一下吗?
davidcheung 发布于 3 年前(06月19日) 到没有看webrtc的代码。现在主要在看我们公司的代码了。。。只是偶尔看一看webrtc的东西。。。
aobai 发布于 3 年前(03月13日) gain_change_hangover_ 应该是每三个block 只能够调整一次,这样保证每帧...
匿名 发布于 5 年前(12月30日) 烫
小奥 发布于 5 年前(12月12日) webRTC里面的NS本身我记得就是在C++里面呀

COPYRIGHT © 2025 小奥的学习笔记. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备19003234号-1

鲁公网安备37120202000100号