為什麼 fstab 使用 UUID 而不是實際的文件系統名稱?
例如,這是 my 的第一行
/etc/fstab
:UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a / ext4 errors=remount-ro 0 1
這是
df -h
命令的輸出(報告可用磁碟空間):honey@bunny:~$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/vda ext4 30832636 4884200 24359188 17% / none tmpfs 4 0 4 0% /sys/fs/cgroup udev devtmpfs 498172 12 498160 1% /dev tmpfs tmpfs 101796 320 101476 1% /run none tmpfs 5120 0 5120 0% /run/lock none tmpfs 508972 0 508972 0% /run/shm none tmpfs 102400 0 102400 0% /run/user
- 鑑於第一列
UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a
是,從這兩者中可以推斷出/dev/vda``fstab``<file system>
- 那麼,如果我修改
/etc/fstab
成這個可以嗎?/dev/vda / ext4 errors=remount-ro 0 1
- **編輯:**如果是(對上述問題),為什麼該
sudo blkid
命令會顯示不同的 UUID/dev/vda
?$ sudo blkid /dev/vda: LABEL="DOROOT" UUID="6f469437-4935-44c5-8ac6-53eb54a9af26" TYPE="ext4"
我在這裡想念什麼?
**答:**我會得出結論(3)是我主機雲中的一個錯誤。所以是的,
blkid
(或ls -l /dev/disk/by-uuid
)報告的 UUID 應該與/etc/fstab
.
使用 UUID 的優點是它獨立於作業系統為您的硬碟提供的實際設備編號。
想像一下,您向系統添加了另一個硬碟,並且由於某種原因作業系統決定您的舊磁碟現在
sdb
不是sda
.
fstab
如果指向設備名稱,您的啟動過程將被搞砸。但在 UUID 的情況下,這很好。有關 UUID 的更多詳細資訊也可以在部落格文章“UUID 和 Linux:您需要知道的一切”中找到
在這種情況下,我可以將 /etc/fstab 修改為這個嗎?
你可以,而且可能沒問題,但很可能最好保留 UUID。
UUID是任意字元串,在這種情況下,用於標識塊設備上的分區;它與分區本身一起儲存,並且可以根據需要分配一個不同的分區(類似於 MAC 地址)。
使用 UUID 的優點是它是明確無誤的,而
/dev/vda
不是;它可能會在啟動時最終成為不同的驅動器,儘管這在上下文中可能完全是理論上的(例如,因為您只有一個特定類型的驅動器)。使用設備名稱可能導致問題的另一個更微妙的例子是最近在某些系統上切換到使用一致的網路設備名稱。如果這是作為升級發生的,並且您在某處的網路腳本中使用了硬編碼的設備名稱,它就會中斷。並行範例 WRT 塊設備可能是更改命名方案的核心或 udev 升級。
UUID 的一個特點是使這類事情成為可能且無痛。因此,雖然您可以使用設備名稱,但這樣做沒有任何好處,除非(例如)您有一個可以交換不同驅動器的系統。換句話說,如果您沒有充分的理由這樣做,請堅持UUID。