fstab自动挂载文件详解

fstab自动挂载文件详解

fstab自动挂载文件详解

在基于Debian Linux发行版的系统中,通常使用/etc/fstab文件来实现自动挂载,本文为fstab文件提供解读。

在此之前,我们需要了解简单的挂载命令如:

mount [-t vfstype] [-o options] device dir

例:

mount /dev/sdb1  /home    //该条目省略了[-t vfstype]和[-o options]   ,device=/dev/sdb1   dir=/home

1、-t vfstype 指定文件系统的类型,通常不必指定,mount 会自动选择正确的类型。

光盘或光盘镜像:iso9660

DOS fat16文件系统:msdos

Windows 9x fat32文件系统:vfat

Windows NT ntfs文件系统:ntfs

Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs

2、-o options 主要用来描述设备或档案的挂接方式。

loop:用来把一个文件当成硬盘分区挂接上系统

ro:采用只读方式挂接设备

rw:采用读写方式挂接设备

iocharset:指定访问文件系统所用字符集

3、device 要挂接(mount)的设备。

4、dir设备在系统上的挂接点(mount point)。

挂接光盘镜像文件

—从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。

#cp /dev/cdrom /home/xiuxiu/mydisk.iso 或 #dd if=/dev/cdrom of=/home/xiuxiu/mydisk.iso

注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/xiuxiu/mydisk.iso

—将文件和目录制作成光盘镜像文件,执行下面的命令,genisoimage和mkisofs是同一个命令,-r或-rational-rock表示使用Rock Ridge Extensions,并开放所有的文件读取权限,针对 UNIX系统的 ISO-9660文件系统,-J或-joliet表示使用Joliet格式的目录或者文件名称,微软公司自定义的光盘文件系统 ,也是ISO-9660 的一种扩展,-V <光盘ID>或-volid <光盘ID>表示指定光盘的卷册集ID

mkisofs-r-J-Vmydisk-o/home/xiuxiu/mydisk.iso/home/xiuxiu/mydir

注:这条命令将/home/xiuxiu/mydir目录下所有的目录和文件制作成光盘镜像文件/home/xiuxiu/mydisk.iso,光盘卷标为:mydisk

—光盘镜像文件的挂接(mount)

mkdir /mnt/vcdrom

注:建立一个目录用来作挂接点(mount point)

mount -o loop -t iso9660 /home/xiuxiu/mydisk.iso /mnt/vcdrom

注:使用/mnt/vcdrom就可以访问光盘镜像文件mydisk.iso里的所有文件了。

挂接移动硬盘

对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l或more /proc/partitions查看系统的硬盘和硬盘分区情况。接好移动硬盘后,再用fdisk –l或more。应该可以发现多了一个SCSI硬盘,假定是/dev/sdc和它的两个磁盘分区/dev/sdc1、/dev/sdc2,/dev/sdc5是/dev/sdc2分区的逻辑分区,我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。

mkdir -p /mnt/usbhd1 #mkdir -p /mnt/usbhd2

注:建立目录用来作挂接点(mount point)

mount -t ntfs /dev/sdc1 /mnt/usbhd1 #mount -t vfat /dev/sdc5 /mnt/usbhd2

注:对ntfs格式的磁盘分区应使用-t ntfs参数,对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。

mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1 #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

Linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3、ext4格式。这样,在linux下使用下面的命令直接挂接即可。

mount /dev/sdc1 /mnt/usbhd1

挂接U盘

和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或more /proc/partitions查看系统的硬盘和硬盘分区情况。

mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

https://zhuanlan.zhihu.com/p/629402405

fstab详解

通常情况下,/etc/fstab 文件中的每行都对应着一个文件系统及其相关配置信息。每一行都包含以下6个字段(记住只有6个也就是用空格或者tab隔开的6列):

图片[1]|fstab自动挂载文件详解|安可通用设备资源站

第1列,设备名称(Device):

该文件系统所使用的块设备的名称或 UUID。

第一列可以是磁盘路径也可以是UUID,这个磁盘路径和可以用fdisk -l 命令查看,这个UUID可以用blkid 命令查看

第2列,挂载点(Mount Point):

该文件系统所挂载到的目录位置。

这个挂载点就是你挂在后以后要用的文件路径,比如/mnt/sda1

这个路径必须提前新建好,新建文件夹命令示例:

mkdir /mnt/sda1

第3列,文件系统类型(Filesystem Type):

该文件系统所使用的文件系统类型,例如 ext4、NTFS 或 exFAT 等。

这个文件系统就是你磁盘分区的格式,我们要挂载fat/NTFS/exFAT这些windows格式的时候需要提前安装驱动支持

在 Armbian 下挂载 fat 和 ntfs 分区通常不需要任何额外的安装,因为这些文件系统格式通常都已经预置了所需的内核模块。但是,对于 exFAT 文件系统,需要额外安装 exfat-fuse 和 exfat-utils 软件包才能够正常挂载。

使用以下命令来安装这些软件包:

sudo apt-get install exfat-fuse exfat-utils

安装完成后,就可以像挂载其他文件系统一样来挂载 exFAT 格式的分区,例如:

sudo mount -t exfat /dev/sdb1 /mnt/exfat

第4列,挂载选项(Mount Options):

配置文件系统的读写权限、自动挂载方式等功能。

下面是一些常见的选项:

rw:可读写模式。

ro:只读模式。

users:允许普通用户挂载和卸载该分区。

owner:将文件系统的所有权交给挂载它的用户。

auto:开机时自动挂载所有列在 /etc/fstab 文件中的文件系统。

noauto:不自动挂载该分区,在需要时手动挂载。

exec:启用二进制程序执行权限。

noexec:禁止二进制程序执行权限。

uid=<value>:将文件系统的所有者设置为指定用户 ID 的用户。

gid=<value>:将文件系统的所有组设置为指定组 ID 的用户组。

umask=<value>:设定默认的文件和目录权限掩码值。

多个选项可以同时使用,以逗号隔开。例如:defaults,noatime,nofail,表示使用默认选项,关闭文件访问时间记录,并在挂载失败时不阻止系统启动。具体支持哪些选项将依赖于您的Linux发行版和内核版本。

上述示例中defaults主要包括以下内容:

rw:读写模式。

suid 和 dev:允许 SUID 标志和设备文件特权。

exec:启用二进制程序执行权限。

auto:自动挂载分区。

nouser:只有 root 用户才能进行挂载和卸载操作。

async:异步 I/O 操作,可提高性能。

atime:记录文件最后访问时间。

例如,如果您想禁用写入权限,可以使用 ro 选项替换掉 rw 选项,如下所示:

UUID=<partition-UUID> <mount-point> <file-system-type> ro,nofail 0 0

第5列,备份频率(Dump Frequency):

与备份程序,dump命令相关的数据。0表示不进行备份。

第6列,检查顺序(Filesystem Check Order):

指定在开机时检查文件系统的顺序。0表示不进行检查。

例如,以下是一个简单的 /etc/fstab 文件示例:

# Device        Mount point       Filesystem type     Options         Dump   Pass
UUID=4f8e246a-5c15-49df-a2b9-8f40b9a7cf87    /       ext4           defaults        1      1
/dev/sda2     /home        ext4          noatime,errors=remount-ro        0       2

第一行表示将 UUID 为 4f8e246a-5c15-49df-a2b9-8f40b9a7cf87 的 ext4 文件系统挂载到根目录下,使用默认选项,并在备份时进行备份。同时指定了该文件系统的检查顺序为 1。

第二行表示将 /dev/sda2 分区的 ext4 文件系统挂载到 /home 目录下,并禁用访问时间记录(noatime),如果发生错误则重新挂载并只允许 root 用户进行挂载和卸载操作,不备份,在系统启动时进行第二级别的检查。

总之,通过修改 fstab 中的配置,您可以实现自动挂载硬盘分区、配置文件系统的读写权限、自动挂载方式等功能。

最后我们来用一个示例总结一下:

UUID=B804-9CBF /mnt/sdb3 exfat defaults,nofail,umask=0000 0 0

上述/etc/fstab 文件中的这一行配置可以将 exFAT 格式的分区自动挂载到 /mnt/sdb3 目录下,具体的配置信息如下:

UUID=B804-9CBF: 表示设备的 UUID,用于唯一标识该分区。您可以通过运行命令 sudo blkid 来查看所有可用块设备和它们的 UUID。

/mnt/sdb3: 表示分区挂载的目录。如果该目录不存在,则需要先创建该目录才能进行挂载操作。

exfat: 表示该分区使用 exFAT 文件系统格式。

defaults,nofail,umask=0000: 表示文件系统的默认挂载选项,包括读写权限、异步 I/O 操作等。此外,还设置了 nofail 参数,以确保即使在挂载失败时也不会阻止系统启动。umask=0000 则禁用了掩码,使得文件和目录的权限可以被设置为最大值。

0 0: 表示备份频率和检查顺序的参数,对于 exFAT 分区来说,这些参数并不适用。

© 版权声明
THE END
喜欢就支持一下吧
点赞123赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容