Arch-Linux

‘/etc/fstab’ 中的 ‘PARTUUID’ 和(硬體)RAID0 不能很好地配合使用,是嗎?

  • January 8, 2016

Fresh Arch Linux 安裝在(硬體)RAID0下,帶有**GPT分區的 64 位UEFI系統。不得不添加

MODULES="ext4 dm_mod raid0"

HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"

/etc/mkinitcpio.conf以便在啟動時正確辨識 RAID0 上的分區。除此以外,

ERROR: device 'UUID=<uuid>' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=<uuid>'.
...

將發出。

但是有一個特點,我不知道如何解釋。一方面,當/etc/fstab包含任何一個/dev/*UUID=*源時,Arch Linux 可以正常啟動。另一方面,當它包含PARTUUID=*源時,會在啟動時發生一堆相應的Dependency failed錯誤(關於從 安裝這些源/etc/fstab)並掛起。

你能解釋一下在這種情況下有什麼問題PARTUUID=*/etc/fstab?這與RAID0有關嗎?


$ cat /proc/mdstat
Personalities : [raid0] 
md126 : active raid0 sda[1] sdb[0]
     976768000 blocks super external:/md127/0 128k chunks

md127 : inactive sda[1](S) sdb[0](S)
     4904 blocks super external:imsm

unused devices: <none>

$ dmsetup table
No devices found

$ lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda             8:0    0 465.8G  0 disk  
└─md126         9:126  0 931.5G  0 raid0 
 ├─md126p1   259:0    0     1G  0 md    /boot/efi
 ├─md126p2   259:1    0     1G  0 md    
 ├─md126p3   259:2    0     1G  0 md    
 ├─md126p4   259:3    0   256G  0 md    
 ├─md126p102 259:4    0    16G  0 md    [SWAP]
 ├─md126p103 259:5    0    16G  0 md    /
 ├─md126p104 259:6    0    16G  0 md    /var
 └─md126p105 259:7    0   256G  0 md    /home
sdb             8:16   0 465.8G  0 disk  
└─md126         9:126  0 931.5G  0 raid0 
 ├─md126p1   259:0    0     1G  0 md    /boot/efi
 ├─md126p2   259:1    0     1G  0 md    
 ├─md126p3   259:2    0     1G  0 md    
 ├─md126p4   259:3    0   256G  0 md    
 ├─md126p102 259:4    0    16G  0 md    [SWAP]
 ├─md126p103 259:5    0    16G  0 md    /
 ├─md126p104 259:6    0    16G  0 md    /var
 └─md126p105 259:7    0   256G  0 md    /home
sr0            11:0    1  1024M  0 rom

$ blkid
/dev/sda: TYPE="isw_raid_member"
/dev/sdb: TYPE="isw_raid_member"
/dev/md126p1: LABEL="EFI" UUID="722E-E4AB" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="a8e94657-e6ea-4712-be06-ac9ffe6e2258"
/dev/md126p3: LABEL="Windows PE 5.0 (x64)" UUID="181C2F991C2F7144" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="15848c79-1456-418b-a243-830d0db894ce"
/dev/md126p4: LABEL="Windows 8.1 (x64)" UUID="AAB83149B83114F3" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7d3a06f5-4c67-4299-80b0-029501e14f18"
/dev/md126p102: UUID="6a2d4998-3ac8-4135-9d72-47960b201d5d" TYPE="swap" PARTLABEL="Swap" PARTUUID="d418edd6-44eb-4058-921f-c68aa191c5ac"
/dev/md126p103: UUID="2c241730-a076-48d9-8d1f-6e10573a994f" TYPE="ext4" PARTLABEL="Arch Linux" PARTUUID="37200e1e-dea4-435a-a873-427e3ee8c494"
/dev/md126p104: UUID="8d4eff47-3a2b-46b4-9263-7bbf00d8d0db" TYPE="ext4" PARTLABEL="Variable" PARTUUID="cd15b1f0-e948-4975-9218-591efa5b9b95"
/dev/md126p105: UUID="e0b15e56-3846-4e75-96f8-4f75058b4a6b" TYPE="ext4" PARTLABEL="Home" PARTUUID="54e85323-522c-415a-b7bd-2eb83b6b4ee6"
/dev/md126: PTUUID="e4e1b9b8-c26f-416d-82d9-e9350d0b5ac2" PTTYPE="gpt"
/dev/md126p2: PARTLABEL="Microsoft reserved partition" PARTUUID="6e9264fd-da04-4966-b8e0-8f3124f47050"

由於現在很清楚您正在執行軟體 RAID(“假 RAID”,其中韌體/BIOS 還具有軟體 RAID 實現,以便更輕鬆地啟動 Windows — 在本例中為 Intel Matrix Storage),您可能會看到Arch 的 initramfs w/r/t 分區 md 數組中的一些錯誤。

真正的硬體突襲對作業系統幾乎是完全透明的;例如,您只會看到一個設備,即 RAID 陣列,而不是每個磁碟一個設備。硬體 RAID 陣列看起來就像作業系統的普通磁碟,至少在您安裝了 RAID 驅動程序後(沒有它,作業系統根本看不到它)。

很長一段時間以來,您根本無法對 md 數組進行分區(在它們之上使用 LVM 或創建多個數組很常見——現在仍然如此);稍後,您可以設置一個可分區的,但這不是預設設置;如今,它們都可以被分割。但是可能仍然有一些關於它們不可分區的假設,並且正在物理磁碟上尋找那個 partuuid,而不是 RAID 陣列。

就個人而言,我不擔心它,而是使用 UUID。此外,一般來說,對於僅限 Linux 的機器,通常最好根本不使用“假 raid”,而直接使用帶有本機格式的 Linux mdraid。有了 RAID-0,我相信你很快就有機會重建盒子……

引用自:https://unix.stackexchange.com/questions/236779