1. 程式人生 > >鳥哥的Linux私房菜讀書筆記--設定開機掛載

鳥哥的Linux私房菜讀書筆記--設定開機掛載

掛載的限制

1、開機掛載

    · 根目錄 / 是必須掛載的﹐而且一定要先於其它 mount point 被掛載進來。     · 其它 mount point 必須為已建立的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則 (FHS)     · 所有 mount point 在同一時間之內﹐只能掛載一次。     · 所有 partition 在同一時間之內﹐只能掛載一次。     · 如若進行卸除﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。

掛載檔案系統需要到/etc/fstab修改,其內容如下:

檔案系統檢驗指令:命令:$  fsck

備份指令:命令:$  dump

o 第一欄:磁碟裝置檔名/UUID/LABEL name:         這個欄位可以填寫的資料主要有三個專案:                 § 檔案系統或磁碟的裝置檔名,如 /dev/vda2 等                 § 檔案系統的 UUID 名稱,如 UUID=xxx                 § 檔案系統的 LABEL 名稱,例如 LABEL=xxx                 命令:$ blkid     ##查詢 UUID                  命令:$ xfs_admin   ##查詢 UUID  o 第二欄:掛載點 (mount point):: o 第三欄:磁碟分割槽槽的檔案系統:                                                         在手動掛載時可以讓系統自動測試掛載,但在這個檔案當中我們必須要手動寫入檔案系統                                                          才行!包括 xfs, ext4, vfat, reiserfs, nfs 等等。 o 第四欄:檔案系統引數:

引數 內容意義

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 設定即可!

o 第五欄:能否被 dump 備份指令作用:                                                               dump 是一個用來做為備份的指令,不過現在有太多的備份方案了,所以這個專案可                                                                  以不要理會啦!直接輸入 0 就好了! o 第六欄:是否以 fsck 檢驗扇區:xfs 會自己進行檢驗,直接填 0。例題: 假設我們要將 /dev/vda4 每次開機都自動掛載到 /data/xfs ,該如何進行? 答:  將底下這一行寫入 /etc/fstab 最後面中; 命令:$  nano /etc/fstab UUID="e0fa7252-b374-4a06-987a-3cb14f415488" /data/xfs xfs defaults 0 0 檢視 /dev/vda4 是否已掛載,如果掛載,請卸除! 命令:$  df Filesystem   1K-blocks   Used     Available    Use%    Mounted on /dev/vda4     1038336    32864    1005472      4%        /data/xfs 如果要被掛載的檔案系統已經被掛載了(無論掛載在哪個目錄),測試就不會進行 Filesystem    1K-blocks    Used      Available    Use% Mounted on /dev/vda4      1038336      32864    1005472       4% /data/xfs           # 竟然不知道何時被掛載了?趕緊給他卸除先!          # 因為,如果要被掛載的檔案系統已經被掛載了(無論掛載在哪個目錄),那測試就不會進行喔! 命令:$  umount /dev/vda4              最後測試一下剛剛我們寫入 /etc/fstab 的語法有沒有錯誤!這點很重要!因為這個檔案如果寫錯了, 則你的 Linux              很可能將無法順利開機完成!所以請務必要測試測試 命令:$  mount -a 命令:$  df /data/xfs            最終有看到 /dev/vda4 被掛載起來的資訊才是成功的掛載了!而且以後每次開機都會順利的將此檔案系統掛載起            來的,重新啟動,檢視預設有沒有 /dev/vda4 呢? /etc/fstab 是開機時的配置檔案,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!但是,萬一發生你在 /etc/fstab 輸入的資料錯誤,導致無法順利開機成功,而進入單人維護模式當中,那時候的/ 可是 read only 的狀態,當然你就無法修改 /etc/fstab ,也無法更新 /etc/mtab 囉~那怎麼辦?沒關係,可以利用底下這一招:命令:$  mount -n -o remount,rw / 命令:$  umount /dev/vda4   ##解除掛載 命令:$   mount -a 命令:$  df /data/xfs     ##測試寫入 /etc/fstab 的語法有沒有錯誤! 最終有看到 /dev/vda4 被掛載起來的資訊才是成功的掛載了!而且以後每次開機都會順利的將此檔案系統掛載起 來的! 現在,你可以下達 reboot 重新啟動,然後看一下預設有沒有多一個 /dev/vda4 呢? /etc/fstab 是開機時的配置檔案,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這 兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!但是,萬一 發生你在 /etc/fstab 輸入的資料錯誤,導致無法順利開機成功,而進入單人維護模式當中,那時候的 / 可是 read only 的狀態,當然你就無法修改 /etc/fstab ,也無法更新 /etc/mtab 囉~那怎麼辦?沒關 系,可以利用底下這一招: 命令: $  mount  -n  -o  remount,rw  /

2、特殊裝置loop掛載

掛載光碟/DVD映像檔案

命令:$  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      #映象檔,檔案非常的大 命令:$  mkdir /data/centos_dvd 命令:$  mount -o loop /tmp/CentOS-7.0-1406-x86_64-DVD.iso /data/centos_dvd 命令:$  df /data/centos_dvd Filesystem   1K-blocks    Used         Available       Use%      Mounted on /dev/loop0    4050860     4050860           0            100%        /data/centos_dvd # iso 映象檔案內的所有資料可以在 /data/centos_dvd 看到! 命令:$  ll /data/centos_dvd total 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 GPL drwxr-xr-x. 3 500 502 2048 Jul 4 2014 images .....(底下省略)..... 命令:$   umount /data/centos_dvd/      ##測試完成,卸除資料,清除映像檔。

2、建立大檔案以製作loop裝置檔案

<1>建立大型檔案

命令:$  dd if=/dev/zero of=/srv/loopdev   bs=1M  count=512

##  if :是inputfile,dev是一直輸入0的裝置

##  of :是outputfile,將一堆0寫入後面檔案中

##  bs :每個block的大小

##count : bs的總數,用來反映檔案的容量

<2>大型檔案格式化

命令:$ mkfs.xfs -f /srv/loopdev

命令:$ blkid  /srv/loopdev

              /srv/loopdev: UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" TYPE="xfs"

<3>掛載

命令:$ mount -o loop UUID=“7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee”   /mnt

命令:$  df /mnt