Debian

在引導期間自動執行 kpartx

  • March 6, 2013

我在 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 將自動檢測並啟動它。

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