/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。 当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。
文件示例
一个简单的 /etc/fstab # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid 0 0 /dev/sda1 / ext4 defaults,noatime 0 1 /dev/sda2 none swap defaults 0 0 /dev/sda3 /home ext4 defaults,noatime 0 2 字段定义
<file system> <dir> <type> <options> <dump> <pass>
文件系统标识
在 要显示分区的基本信息请运行: $ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff / ├─sda2 ntfs Windows 6C1093E61093B594 └─sda3 ext4 Storage f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage sdb ├─sdb1 ntfs Games 9E68F00568EFD9D3 └─sdb2 ext4 Backup 14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup sdc └─sdc1 vfat Camera 47FA-4071 /media/Camera 内核名称
你可以使用 标签
要显示所有设备的标签,可以使用 /etc/fstab # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid 0 0 LABEL=Arch_Linux / ext4 defaults,noatime 0 1 LABEL=Arch_Swap none swap defaults 0 0 UUID
所有分区和设备都有唯一的 UUID。它们由文件系统生成工具 (
/etc/fstab # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid 0 0 UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26 / ext4 defaults,noatime 0 1 UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff /home ext4 defaults,noatime 0 2 UUID=4209c845-f495-4c43-8a03-5363dd433153 none swap defaults 0 0 提示和技巧自动挂载
noauto,x-systemd.automount
这样
/etc/crypttab data /dev/md0 /root/key noauto 交换分区 UUID
如果交换分区没有 UUID,可以手动加入。如果使用 确定交换分区: # swapon -s 禁用交换分区: # swapoff /dev/sda7 用新 UUID 重新创建交换分区: # mkswap -U random /dev/sda7 激活交换分区: # swapon /dev/sda7 路径名有空格如果挂载的路径中有空格,可以使用 "\040" 转义字符来表示空格(以三位八进制数来进行表示) /etc/fstab UUID=47FA-4071 /home/username/Camera\040Pictures vfat defaults,noatime 0 2 /dev/sda7 /media/100\040GB\040(Storage) ext4 defaults,noatime,user 0 0 .....</nowiki>}} 外部设备
外部设备在插入时挂载,在未插入时忽略。这需要 /etc/fstab /dev/sdg1 /media/backup jfs defaults,nofail 0 2 atime 参数
使用
使用 tmpfstmpfs 是一个临时文件系统,驻留于你的交换分区或是内存中(取决于你的使用情况)。使用它可以提高文件访问速度,并能保证重启时会自动清除这些文件。
经常使用 tmpfs 的目录有 /tmp, /var/lock and /var/run. 不要将之使用于 /var/tmp, 因为这一目录中的临时文件在重启过程中需要被保留。使用 tmpfs 默认情况下, tmpfs 分区被设置为你总的内存的一半,当然你可以自由设定这一值。注意实际中内存和交换分区的使用情况取决于你的使用情况,而 tmpfs 分区在其真正使用前是不会占用存储空间的。
要将 /etc/fstab ..... tmpfs /tmp tmpfs nodev,nosuid 0 0 .....
可以指定大小,但不要修改 /etc/fstab ..... tmpfs /tmp tmpfs nodev,nosuid,size=2G 0 0 .....
这里有一个更高级的例子,展示如何为用户添加 tmpfs 挂载。这对于网站、mysql 临时文件, /etc/fstab tmpfs /www/cache tmpfs rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700 0 0 参阅 mount 命令 man 手册以获得更多的内容。
重启后方能生效。注意不要直接执行
应用更改后,可以通过 $ findmnt --target /tmp TARGET SOURCE FSTYPE OPTIONS /tmp tmpfs tmpfs rw,nosuid,nodev,relatime 使用一般需要大量读写操作的程序在使用 tmpfs 时都会提升性能。有些程序把共享内存放到 tmpfs 上时性能会大幅提升,例如将 Firefox Profile 文件夹放到内存后,Firefox 性能大幅提升。
下面命令可以让makepkg在tmpfs目录进行编辑,也可以在在 $ BUILDDIR=/tmp/makepkg makepkg 普通用户读写 FAT32
为了取得对 FAT32 分区的写权限,你必须修改 /etc/fstab /dev/sdxY /mnt/some_folder vfat user,rw,umask=000 0 0 “users”标签的意思是任何用户(甚至非 root 用户)都可以挂载或卸载分区 '/dev/sdX'。“rw”标签则分配读写的使用权。但我不知道“umask”标签的意义(umask 是权限掩码命令 umask=000 指任何人没有特权,且权限为777,即所有人都可以读、写、执行)。我曾试图在“man mount”中查询,但是没有什么结果。 比如你的 FAT32 分区在 '/dev/sda9',你想将其挂载到 '/mnt/fat32',那么你需要输入并运行 /etc/fstab /dev/sda9 /mnt/fat32 vfat user,rw,umask=111,dmask=000 0 0
参考自:https://wiki.archlinux.org/index.php/Fstab (责任编辑:IT) |