Debian
在引導期間自動執行 kpartx
我在 SSD 上執行 Debian Wheezy,此外,我在 Intel 軟體 RAID 0 (fakeraid) 中有兩個 500GB 硬碟。SSD 和 RAID 陣列都有 GPT 分區佈局。我已將我的 fstab 設置為自動掛載 RAID 陣列上的一個分區,但根文件系統位於 SSD 上。
在引導期間,dmraid 會找到陣列,但不會自動發現其中的分區。這會導致引導 fsck 失敗並將我轉儲到恢復 shell。
在恢復 shell 上執行
kpartx -a /dev/mapper/isw_xxx_Volume0
會自動發現分區並且一切正常,但是每次啟動時都必須輸入它有點煩人。難道我做錯了什麼?有什麼方法可以自動進行分區探測嗎?/dev/sda(SSD)的分區佈局
Number Start (sector) End (sector) Size Code 1 2048 411647 200.0 MiB EF00 EFI System Partition 2 411648 117598207 55.9 GiB 0700 Debian root filesystem 3 117598208 250068991 63.2 GiB 0700 Not used yet
/dev/mapper/isw_cddhbifacg_Volume0(RAID 陣列)的分區佈局
Number Start (sector) End (sector) Size Code 1 2048 937502719 447.0 GiB 0700 Debian extra stuff 2 937502720 976564223 18.6 GiB 8200 Swap 3 976564224 1953535999 465.9 GiB 0700 Not used yet
/etc/fstab 的內容
# <file system> <mount point> <type> <options> <dump> <pass> UUID=7f894df3-49f4-4119-bda9-f4734780eaab / ext4 errors=remount-ro 0 1 UUID=0B6C-A37C /boot/efi vfat defaults 0 1 /dev/mapper/isw_cddhbifacg_Volume0p1 /mnt/data ext4 defaults 0 2 /dev/mapper/isw_cddhbifacg_Volume0p2 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/sdd1 /media/usb0 auto rw,user,noauto 0 0 /dev/sde1 /media/usb1 auto rw,user,noauto 0 0 /dev/sde2 /media/usb2 auto rw,user,noauto 0 0
原始問題的解決方案
安裝
kpartx
:
sudo aptitude install kpartx
更改這些行
/lib/udev/rules.d/60-kpartx.rules
:ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="dmraid-*", \ RUN+="/sbin/kpartx -a -p -part /dev/$name"
對此:
ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="DMRAID-*", \ RUN+="/sbin/kpartx -a /dev/$name"
更新 initramfs:
sudo update-initramfs -u
重新啟動,應該已正確檢測到分區。
替代解決方案
使用 mdadm 代替 dmraid。使用 Intel 配置實用程序設置 RAID 陣列(在引導期間按 Ctrl+I),Debian Installer 7 RC1 將自動檢測並啟動它。