Linux fstab文件詳解

/********************************************************
 * Author: Goup
 *
 * Date: 2017-09-04 15:27
 *
 * Description: regular expression
 *
 ********************************************************/
 
 
/etc/fstab 設置文件系統掛載信息的文件,使得開機能夠自動掛載磁盤分區


/etc/fstab 文件包含了如下字段,通過空格或 Tab 分隔:


<file system> <dir> <type> <options> <dump> <pass>


#第一列:要被掛載的磁盤設備


#第二列:前面目錄的掛載點(前面的目錄掛載到哪個目錄下)


#第三列:掛載的文件系統類型!支持許多種不同的文件系統:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。 設置成auto類型,mount 命令會猜測使用的文件系統類型,對 CDROM 和 DVD 等移動設備是非常有用的。


#第四列:掛載的選項!注意有些mount 參數是特定文件系統纔有的。一些比較常用的參數有


auto - 在啓動時或鍵入了 mount -a 命令時自動掛載。
noauto - 只在你的命令下被掛載。
exec - 允許執行此分區的二進制文件。
noexec - 不允許執行此文件系統上的二進制文件。
ro - 以只讀模式掛載文件系統。
rw - 以讀寫模式掛載文件系統。
user - 允許任意用戶掛載此文件系統,若無顯示定義,隱含啓用 noexec, nosuid, nodev 參數。
users - 允許所有 users 組中的用戶掛載文件系統.
nouser - 只能被 root 掛載。
owner - 允許設備所有者掛載.
sync - I/O 同步進行。
async - I/O 異步進行。
dev - 解析文件系統上的塊特殊設備。
nodev - 不解析文件系統上的塊特殊設備。
suid - 允許 suid 操作和設定 sgid 位。這一參數通常用於一些特殊任務,使一般用戶運行程序時臨時提升權限。
nosuid - 禁止 suid 操作和設定 sgid 位。
noatime - 不更新文件系統上 inode 訪問記錄,可以提升性能(參見 atime 參數)。
nodiratime - 不更新文件系統上的目錄 inode 訪問記錄,可以提升性能(參見 atime 參數)。
relatime - 實時更新 inode access 記錄。只有在記錄中的訪問時間早於當前訪問纔會被更新。(與 noatime 相似,但不會打斷如 mutt 或其它程序探測文件在上次訪問後是否被修改的進程。),可以提升性能(參見 atime 參數)。
flush - vfat 的選項,更頻繁的刷新數據,複製對話框或進度條在全部數據都寫入後才消失。
defaults - 使用文件系統的默認掛載參數,例如 ext4 的默認參數爲:rw, suid, dev, exec, auto, nouser, async.

#第五列:是否需要備份磁盤,1表示需要備份,0表示不需要備份


#第六列:開機是否自檢

文件系統標識


在 /etc/fstab配置文件中你可以以三種不同的方法表示文件系統:內核名稱、UUID 或者 label。使用 UUID 或是 label 的好處在於它們與磁盤順序無關。如果你在 BIOS 中改變了你的存儲設備順序,或是重新拔插了存儲設備,或是因爲一些 BIOS 可能會隨機地改變存儲設備的順序,那麼用 UUID 或是 label 來表示將更有效。


要顯示分區的基本信息請運行:
[root@localhost ~]# lsblk -f
NAME   FSTYPE  LABEL                  UUID                                 MOUNTPOINT
loop0  iso9660 RHEL_6.5 x86_64 Disc 1                                      /yum/iso
sda                                                                        
├─sda1 ext4                           84ab1582-bf50-4cee-8fa1-3c437d58fd30 /boot
├─sda2 swap                           fae16eba-3ddd-4c3e-9db4-82d705873828 [SWAP]
└─sda3 ext4                           f7720d29-4e0d-4caa-9bb1-e5aca75f4c39 /
sr0                                                                        
sr1 


UUID


所有分區和設備都有唯一的 UUID。它們由文件系統生成工具 (mkfs.*) 在創建文件系統時生成。


lsblk -f 命令將顯示所有設備的 UUID 值。/etc/fstab 中使用 UUID= 前綴:


手動掛載測試


1:創建一個虛擬的塊設備
[root@Gin scripts]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=10
2:格式化 [root@Gin scripts]# mkfs.ext4 /dev/sdb1
3:掛載 [root@Gin scripts]# mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt
4:查看掛載設置 [root@Gin scripts]# df -hT
5:寫入/etc/fstab配置文件,開機自動掛載!也可以寫入到/etc/rc.local文件


[root@Gin scripts]# cat /etc/fstab
UUID=435a2a45-0f41-49b0-b3f2-5d4a00615339 /                       ext4    defaults        1 1
UUID=851d3618-fb61-40cb-ba6d-e0879a7d06a3 /boot                   ext4    defaults        1 2
UUID=91f17110-1462-4327-82ce-474f728f2e62 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb1       /mnt            ext4    loop,noatime,noexec     0 0

#上面的/dev/sdb1需要掛載的目錄,可以使用UUID來替代,查看UUID命令如下:blkid 或 ls -l /dev/disk/by-uuid


fstab出問題的修復方案:


1)開機提示,輸入密碼 修改


2)救援模式,rescue


修復/etc/fstab只讀狀態:mount -o rw,remount /
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章