Linux

為什麼 /dev/disk/by-id 目錄只有 cdrom 設備,而推薦 /dev/disk/by-X 中的哪一個來創建 zfs 池?

  • April 4, 2018

我在 esxi 環境中執行 ubuntu 16.04 機器,我正在通過 linux常見問題解答上的 zfs,由於 /dev/sdX 名稱的性質不一致,它建議將 /dev/disk/by-id 用於家庭伺服器,但是當我列出文件時/dev/disk by-id 只有 cdrom 設備符號連結。

root@sandbox1:/usr/lib# ls -l /dev/disk/*
/dev/disk/by-id:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 -> ../../sr0

/dev/disk/by-label:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 ISOIMAGE -> ../../sr0

/dev/disk/by-partuuid:
total 0
lrwxrwxrwx 1 root root 10 Mar 23 14:01 0ab37a34-0257-4619-b03e-d0d517ae81b0 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 23 14:01 117b8f72-31ce-453c-96ad-1c3a6a7254ca -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 23 14:01 13901c1b-5f31-4ec8-82d4-a6f90867cb0c -> ../../sda9
lrwxrwxrwx 1 root root 10 Mar 23 14:01 321d414b-3d47-4545-acc5-36e5ecf8d3b8 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 23 14:01 6d13446d-9d6f-4ca3-825e-c505f244e73c -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 23 14:01 94e037c9-ee9e-40b2-b634-2382734e7fdc -> ../../sda3

/dev/disk/by-path:
total 0
lrwxrwxrwx 1 root root  9 Mar 23 14:01 pci-0000:00:07.1-ata-2 -> ../../sr0
lrwxrwxrwx 1 root root  9 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part9 -> ../../sda9

/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 2017-06-18-10-12-11-00 -> ../../sr0

在虛擬化和非虛擬化環境中,推薦使用哪種方法(按 id、按路徑等)來創建 zfs 池或 /dev/sdX 塊設備中可能發生更改的任何其他文件系統?

看起來正在使用的 SCSI 設備類型與任何 udev 規則都不匹配,因此by-id沒有創建正常的符號連結。您可能想讓 Ubuntu systemd/udev 維護人員知道您的 ESXI SCSI 磁碟設備工作不正常。

作為一種解決方法,您可以通過創建新的自定義 udev 規則文件來為您的設備創建一個永久名稱。本指南是我發現的最容易閱讀的指南,儘管它是為 Oracle Linux 編寫的。我認為 Ubuntu 16.04 使用更新的udevadm而不是udevinfo.

因此,例如,您可以嘗試udevadm test /block/sda查看您的設備匹配哪些 udev 規則,以及正在創建哪些符號連結。然後,您可以創建自己的規則來匹配您設備的序列號,並創建您想要的任何符號連結 - /dev/disk/by-id/.../dev/disk/by-uuid/...甚至/dev/mySCSIDevice.

引用自:https://serverfault.com/questions/905895