侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Linux学习-设置开机挂载

2023-09-23 星期六 / 0 评论 / 0 点赞 / 52 阅读 / 8305 字

###开机挂载/etc/fstab及/etc/mtab系统挂载的一些限制:根目录/是必须挂载的,而且一定要先于其他mount point被挂载进来。其他mount point必须为已创建的目录,可任意

###开机挂载/etc/fstab及/etc/mtab

系统挂载的一些限制:

  • 根目录/是必须挂载的,而且一定要先于其他mount point被挂载进来。
  • 其他mount point必须为已创建的目录,可任意制定,但是一定要遵守必须的系统目录架构原则(FHS)
  • 所有mount point在同一时间之内,只能挂载一次。
  • 所有partition在同一时间之内,只能挂载一次。
  • 如若进行卸载,您必须先将工作目录移到mount point(及其子目录)之外。

让我们直接查阅/etc/fstab这个文件的内容吧。

[root@study ~]# cat /etc/fstab# Device                              Mount point  filesystem parameters    dump fsck/dev/mapper/centos-root                   /       xfs     defaults            0 0UUID=94ac5f77-cb8a-495e-a65b-2ef7442b837c /boot   xfs     defaults            0 0/dev/mapper/centos-home                   /home   xfs     defaults            0 0/dev/mapper/centos-swap                   swap    swap    defaults            0 0

其实/etc/fstab(filesystem table)就是将我们利用mount命令进行挂载时,将所有的选项与参数写入到这个文件中就是了。除此之外,/etc/fstab还加入了dump这个备份用指令的支持,与开机时是否进行文件系统检验fsck等指令相关。这个文件的内容共有6个字段,各字段的总结数据与详细数据如下:

[设备/UUID等] [挂载点] [文件系统] [文件系统参数] [dump]  [fsck]
  • 第一栏 : 磁盘设备文件名/UUID/LAbel name:

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

  • 文件系统或磁盘的设备文件名, 如/dev/vda2等

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

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

  • 第二栏 : 挂载点(mount point) :就是挂载点。挂载点是什么?一定是目录。

  • 第三栏 : 磁盘分区的文件系统 :

在手动挂载时可以让系统自动测试挂载,但在这个文件当中我们必须要手动写入文件系统才行。包括xfs、ext4、vfat、reiserfs、nfs等等。

  • 第四栏 : 文件系统参数 :

mount这个指令中谈到的特殊文件参数。

参数内容意义
async/sync 非同步/同步设置磁盘是否以非同步方式运行。默认为async(性能较佳)
auto/noauto 自动/非自动当下达mount -a,此文件系统是否会被主动测试挂载。默认为auto。
rw/ro 可读/只读让该分区以可读写或者是可只读的型态挂载上来。如果你想要分享的数据是不给使用者随意变更的,这里也能够设置为只读。则不论在此文件系统的文件是否设置w权限,都无法写入。
exec/noexec 可执行/不可执行限制在此文件系统内是否可以进行"执行"的工作?如果是纯粹用来储存数据的目录,那么可以设置为noexec会比较安全。不过,这个参数也不能够随便使用。因为你不知道该目录下是否默认会有可执行文件。举例来说,如果你将noexec设置在/var,当某些软件将一些可执行文件放置在/var下时,那就会产生很大的问题。因为建议这个noexec最多仅设置于你自订或分享的一般数据目录。
user/nouser 允许/不允许使用者挂载是否允许使用者使用mount指令来挂载呢?一般而言,我们当然不希望一般身份的user能使用mount。因为太不安全了。因为这里应该要设置为"nouser"。
suid/nosuid 具有/不具有suid权限该文件系统是否允许SUID的存在?如果不是可执行文件放置目录,也可以设置为nosuid来取消这个功能!
defaults同时具有rw,suid,dev,exec,auto,nouser,async等参数,基本上。默认情况使用defaults设置即可
  • 第五栏 : 能否被dump备份指令作用:

dump是一个用来作为备份的指令。不过现在太多的备份方案了。所以这个项目可以不要理会,直接输入0就好了。

  • 第六栏 : 是否以fsck检验扇区

早起的开机流程中,会有一段时间去检验本机的文件系统,看看文件系统是否完整(clean),不过这个方式使用的主要是fsck去做的,我们现在用的xfs文件系统就没有办法适合。因为xfs会自己检验,不需要额外进行这个动作。所以直接填0就好了。

###特殊设备loop挂载(镜像文件不烧录就挂载使用)

  • 挂载光盘/DVD镜像文件
[root@study ~]# ll -h /tmp/CentOS-7.0-1406-x86_64-DVD.iso-rw-r--r--. 1 root root 3.9G Jul  7  2014 /tmp/CentOS-7.0-1406-x86_64-DVD.iso# 看到上面的结果吧!这个文件就是镜像文件,文件非常的大吧![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# 就是這個項目! .iso 镜像文件的所有数据可以在 /data/centos_dvd 看到![root@study ~]# ll /data/centos_dvdtotal 607-rw-r--r--. 1  500  502     14 Jul  5  2014 CentOS_BuildTag <==瞧!就是DVD的內容啊!drwxr-xr-x. 3  500  502   2048 Jul  4  2014 EFI-rw-r--r--. 1  500  502    611 Jul  5  2014 EULA-rw-r--r--. 1  500  502  18009 Jul  5  2014 GPLdrwxr-xr-x. 3  500  502   2048 Jul  4  2014 images.....(下面省略).....[root@study ~]# umount /data/centos_dvd/# 测试完成!記得将数据給他卸载!

创建大文件以制作loop设备文件

下面我们在 /srv 下创建一个 512MB 左右的大文件,然后将这个大文件格式化并且实际挂载来玩一玩!

  • 创建大文件

首先,我们得先有一个大的文件吧!怎么创建这个大文件呢?在 Linux 下面我们有一支很好 用的程序 dd !他可以用来创建空的文件!假设我要创建一个空的文件在 /srv/loopdev ,那可以这样做:

[root@study ~]# dd if=/dev/zero of=/srv/loopdev bs=1M count=512512+0 records in <==读入 512 笔数据512+0 records out <==输出 512 笔数据536870912 Bytes (537 MB) copied, 12.3484 seconds, 43.5 MB/s# 这个指令的简单意义如下:# if 是 input file ,输入文件。那个 /dev/zero 是会一直输出 0 的设备!# of 是 output file ,将一堆零写入到后面接的文件中。# bs 是每个 block 大小,就像文件系统那样的 block 意义;# count 则是总共几个 bs 的意思。所以 bs*count 就是这个文件的容量了![root@study ~]# ll -h /srv/loopdev-rw-r--r--. 1 root root 512M Jun 25 19:46 /srv/loopdev 
  • 大型文件格式化默认xfs不能够格式化文件,所以需要格式化文件得要加入特别的参数。
[root@study ~]# mkfs.xfs -f /srv/loopdev[root@study ~]# blkid /srv/loopdev/srv/loopdev: UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" TYPE="xfs"
  • 挂载

利用mount的特殊参数,那个-o loop的参数来处理!

[root@study ~]# mount -o loop UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" /mnt[root@study ~]# df /mntFilesystem     1K-blocks  Used Available Use% Mounted on/dev/loop0        520876 26372    494504   6% /mnt

现在将这个文件系统永远的挂载起来。

[root@study ~]# nano /etc/fstab/srv/loopdev  /data/file  xfs  defaults**,loop**   0 0# 毕竟系统大多仅查询 block device 去找出 UUID 而已,因此使用文件创建的 filesystem,# 最好还是使用原本的文件名来处理,应该比较不容易出现错误讯息的![root@study ~]# umount /mnt[root@study ~]# mkdir /data/file[root@study ~]# mount -a[root@study ~]# df /data/fileFilesystem     1K-blocks  Used Available Use% Mounted on

广告 广告

评论区