Could not find partitions

這狀況發生在將SLES11映象檔透過Clonezilla還原至不同顆硬碟時發生。發生問題畫面如下:

發生問題原因是SLES採用硬碟ID當掛載辨識名稱,導致image無法辨識新硬碟。

我的解法是將資料分割/dev/sda1掛載到/tmp上,再透過sed去修改tmp中的/etc/fstab。會用sed去修改是由於vim與vi無法使用。一般如果純粹只是fstab設定錯誤而導致無法開機,可以直接透過single user mode去重新掛載並透過vi or vim修改fstab。

mount /dev/sda1 /tmp
cd /tmp/etc
# backup fstab
cp fstab fstab.bak
我的fstab內容:

我們目標就是把disk/by-id/ata-KINGSTON_SV100264G_08AAC0043704-part1與part2分別取代為sda1與sda2。內容就根據你fstab的id是什麼就改為什麼。
sed -i 's/disk\/by-id\/ata-KINGSTON_SV100264G_08AAC0043704-part1/sda1/g' fstab
sed -i 's/disk\/by-id\/ata-KINGSTON_SV100264G_08AAC0043704-part2/sda2/g' fstab
如果有改錯,再把先前備份的fstab.bak拿來還原即可。另外還有/boot/grub/menu.list也要做相同的修改。