2015年3月12日 星期四

Ubuntu 使用 UUID 開機自動掛載磁碟

一般掛載磁碟時都是使用 mount 指令,不過 mount 指令掛載的效果會在下次重開機時失效
為了避免每次開機都要重新掛載,可以把掛載的資訊寫在 /etc/fstab 檔案上
每次系統開機時就會自動依照 /etc/fstab 的資訊執行掛載了。


除了自動掛載以外,Ubuntu 有支援使用 UUID 控制檔案系統
因此可以直接將磁區的 UUID(磁碟格式化完以後,每個磁區都會有自己的 UUID)寫在 /etc/fstab 上。

PS. 磁碟每次重新格式化以後,UUID 就會變,所以如果事後有重新格式化的話,記得要回來 /etc/fstab 變更磁區對應的 UUID。

查詢磁區 UUID 的方法如下:
blkid -s UUID

查詢結果如下:
/dev/sdb1: UUID="1bddbb63-7a39-4280-92e6-bb878301f1a3"
/dev/sdd1: UUID="42c5f089-b8c3-4a44-97ef-d83d8642925e"
/dev/sdc1: UUID="f293a700-73de-4dbd-96d0-ceefbb1fefde"
/dev/sda2: UUID="4182b44b-194b-4fcf-8400-691b4a4fef42"
/dev/sda3: UUID="82e5cbcf-41cc-4b4e-88ea-40795fa9a256"
從上面可以看到,我的環境裡有四顆硬碟(sda、sdb、sdc 和 sdd),其中 sda 切了兩個磁區,其他都只切一個磁區。
(/dev/sda1 沒顯示出來是因為那個磁區是 swap 磁區)

有了 UUID 以後,就可以開始編輯 /etc/fstab 檔了。
UUID=4182b44b-194b-4fcf-8400-691b4a4fef42 /               ext4    errors=remount-ro 0       1
# Mount /dev/sdb1
UUID=1bddbb63-7a39-4280-92e6-bb878301f1a3 /mnt/storage-sdb ext4    defaults        0       2
# Mount /dev/sdc1
UUID=f293a700-73de-4dbd-96d0-ceefbb1fefde /mnt/storage-sdc ext4    defaults        0       2
# Mount /dev/sdd1
UUID=42c5f089-b8c3-4a44-97ef-d83d8642925e /mnt/storage-sdd ext4    defaults        0       2
# swap on /dev/sda3
UUID=82e5cbcf-41cc-4b4e-88ea-40795fa9a256 none            swap    sw              0       0

以上的設定建完後,下次重開機時 df -h 的結果如下:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       886G  1.2G  840G   1% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             16G  8.0K   16G   1% /dev
tmpfs           3.2G  908K  3.2G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             16G     0   16G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdb1       917G  1.1G  870G   1% /mnt/storage-sdb
/dev/sdc1       917G   72M  871G   1% /mnt/storage-sdc
/dev/sdd1       917G   72M  871G   1% /mnt/storage-sdd

參考資料:
1、鳥哥的 Linux 私房菜:開機掛載 /etc/fstab 及 /etc/mtab

沒有留言: