之前,在安裝 Fedora 19 時,並沒有什麼大問題,依照說明書,或操作介面的提示訊息就足夠。在之後的使用時,也都很正常;唯一可以抱怨的,就是速度因 BIOS RAID 而有些微損失。
註:BIOS RAID 部分容錯計算是由軟體完成,硬體只提供部分加速功能。
Fedora 21 發佈後,只安裝在「虛擬機」體驗,沒有在實體安裝測試。利用元旦的連假,將原本執行 Fedora 19 的工作機,升級到 Fedora 21 Workstation。進行實用測試,比較能試出問題點來。
由於是原有的工作機,所以安裝時保留 /home 這個目錄。其它『分割』只做格式化,大小及掛載點都不變。安裝過程除了『分割』設定時小心一點外,其它的操作反因少了一些選項,而變得較簡單。
安裝後,重新啟動就發生問題,查看開機時的訊息,顯示 /boot 和 /home 未能自動掛載。幾次手動掛載 /home 目錄,才勉強讓系統開機,並登入桌面。但是,下次開機又是一番折騰,難道要重新換回 Fedora 19 才行?
根據錯誤訊息得知,該目錄(/boot 和 /home)已被掛載並處於忙錄中,造成掛載失敗。以為是原有 Linux 核心的問題,想說先更新再說;不料,仍是一樣的結果。
比對開機階段與目錄掛載有關的檔案:/boot/grub2/grub.conf(指定『 / 』目錄所在)及 /etc/fstab(掛載 /, /boot, /home 及 swap 分割、目錄)。其中,有以 UUID 也有使用 Disk-Mapper 型式來指定分割、目錄。
因為原本的系統是用 dmraid (Device-Mapper Software RAID) 製做的 RAID 1,其指定『分割』的方式應該是 /dev/mapper/pdc_xx...xxN,就將 /boot/grub2/grub.conf 及 /etc/fstab 兩個檔案修改一下,修改內容如下:
一、開機選項設定檔 /boot/grub2/grub.conf 的修改
先啟動「終端機」並切換為 root 身分,用讀者熟悉的「文字編輯程式」編輯 /boot/grub2/grub.conf 檔;如果喜歡「圖形化介面」可以用 pluma 或 gedit 開啟它。找到開機選項的內容,下面的例子是已將 Fedora 21 更新至最新版,. . . . .其中,以 linux16 為首的那一列,有個 root=UUID=. . . 的參數是用來指定系統『 / 』(即:根目錄)之所在。把它改成 Disk-Mapper 的型式,如下:
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.17.7-300.fc21.x86_64) 21 (Twenty One)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.17.4-301.fc21.x86_64-advanced-f0acf48f-b973-4ef8-a73e-3b3aec28cc4a' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' e386c71d-6d72-448a-994f-f42acccc7f4b
else
search --no-floppy --fs-uuid --set=root e386c71d-6d72-448a-994f-f42acccc7f4b
fi
linux16 /vmlinuz-3.17.7-300.fc21.x86_64 root=UUID=f0acf48f-b973-4ef8-a73e-3b3aec28cc4a ro rd.dm.uuid=pdc_hgjifbghb rhgb quiet LANG=zh_TW.UTF-8
initrd16 /initramfs-3.17.7-300.fc21.x86_64.img
}
. . . . .
. . . . .其中的 /dev/mapper/pdc_hgjifbghb2 就是 Disk-Mapper 型式的根目錄識別名。
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.17.7-300.fc21.x86_64) 21 (Twenty One)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.17.4-301.fc21.x86_64-advanced-f0acf48f-b973-4ef8-a73e-3b3aec28cc4a' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' e386c71d-6d72-448a-994f-f42acccc7f4b
else
search --no-floppy --fs-uuid --set=root e386c71d-6d72-448a-994f-f42acccc7f4b
fi
linux16 /vmlinuz-3.17.7-300.fc21.x86_64 root=/dev/mapper/pdc_hgjifbghb2 ro rd.dm.uuid=pdc_hgjifbghb rhgb quiet LANG=zh_TW.UTF-8
initrd16 /initramfs-3.17.7-300.fc21.x86_64.img
}
. . . . .
註:Disk-Mapper 型式的識別名,需要讀者自行查詢(筆者是從終端機用命令『 ll /dev/disk/by-id/ 』得到),或藉助一個名稱為 gnome-disk-utility (程式選單:《應用》→《附屬應用程式》→《硬碟》)的系統工具。
二、硬碟掛載設定檔 /etc/fstab 的修改
系統核心載入後,會根據 /etc/fstab 的內容掛載其它目錄,在修改後都是以 UUID 型式指定各分割的識別名,除了 / (根目錄)以後,其它目錄都未能成功掛載。查詢適當的 Disk-Mapper 型式識別名,(筆者是比較 /dev/mapper、/dev/disk/by-uuid 及 /dev/disk/by-id 得知)。修改後的內容如下:
# # /etc/fstab # Created by anaconda on Fri Jan 2 22:50:57 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=f0acf48f-b973-4ef8-a73e-3b3aec28cc4a / ext4 defaults 1 1 UUID=e386c71d-6d72-448a-994f-f42acccc7f4b /boot ext4 defaults 1 2 UUID=8d6ac833-a3c4-48ab-84b2-717c812e9b13 /home ext4 defaults 1 2 UUID=caa22ab9-0e2b-4286-98a1-f298c908591a swap swap defaults 0 0
再重新開機,系統就會正確地自動掛載這些分割。
# # /etc/fstab # Created by anaconda on Fri Jan 2 22:50:57 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/pdc_hgjifbghb2 / ext4 defaults 1 1 /dev/mapper/pdc_hgjifbghb1 /boot ext4 defaults 1 2 /dev/mapper/pdc_hgjifbghb5 /home ext4 defaults 1 2 /dev/mapper/pdc_hgjifbghb3 swap swap defaults 0 0
已測試版本:
- Fedora: 19 → 21
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)