cht電腦資訊Linux
adm Find login register

使用救援CD來換機器

eliu
1 使用救援CD來換機器
Promote 0 Bookmark 02010-03-20quote  

早上想機器很久沒清了,大概風扇吸滿了灰塵,清好了之後打開電源,竟然PC發出連續的 Bi Bi,被嚇出一身冷汗,我明明有拔掉電源線,怎麼會壞掉呢,弄半天還是修不好,甚至最後變成按 power button 電源都不會開,後來想把IDE 硬碟搬到很舊的 PIII celeron 1.3G。

HD 是有抓到,但沒辦法 load file system,因為沒有 IDE chipset 的 driver。

Mandrive 的 install DVD 其實也是救援光碟(rescue CD),開機有抓到HD,接下來要用什麼方法把 driver 掛上去

進入 console & 把 root 掛到 /mnt 之後

# mount -B /sys  /mnt/sys
# mount -B /proc /mnt/proc
# chroot /mnt
mkinitrd 需要 /sys /proc 才能正常工作。如果你是用自己 compile 的 kernel,這邊就可以開始把需要的 driver compile 進去。 mkinitrd 是做一個小的虛擬硬碟,裏面放需要的硬碟 & file system kernel module driver。

# mkinitrd -f /boot/initrd-2.6.22.9-1my.img 2.6.22.9-1my

cd /boot/grub
./install.sh

edited: 2
本人已不在此站活動
2
Promote 0 Bookmark 02010-03-20quote  

不是有模組可以掛嗎?

eliu
3
Promote 0 Bookmark 02010-03-20quote  
本人已不在此站活動
4
Promote 0 Bookmark 02010-03-20quote  

eliu
你說的模組是什麼?

IDE driver,但要在 boot 時就要掛上就是了。

eliu
5
Promote 0 Bookmark 02010-03-20quote  
本人已不在此站活動
6
Promote 0 Bookmark 02010-03-20quote  

eliu
IDE driver底層還有依不同的 chipset 還有不同的 driver,這台 celeron 1.3G 需要的是 piix.ko

我的意思是說,他不一定要編進去 kernel,可以讓他在 boot 時掛進去。

eliu
7
Promote 0 Bookmark 02010-03-20quote  
IDE 的 driver 一定必須放在 initrd 的 image 裏面,沒有 IDE driver,root filesystem 沒辦法 read。其他像網路&音效卡的 .ko 就可以等 filesystem mount 之後再 load。
本人已不在此站活動
8
Promote 0 Bookmark 02010-03-20quote  

eliu
IDE 的 driver 一定必須放在 initrd 的 image 裏面

是的。做成  initrd 的 image,他本身就是 modules,這時就不必編譯進 kernel 裡頭去了。

把他編進 kernel 就不必做  initrd 的 image。我的意思是,現在的 distro,通常會編一個現成的 *.ko,把他弄進 image,開機時 boot loader 去把他掛上來就好了,應該不必重編 kernel,並把他編進 kernel 裡頭去。

edited: 1
eliu
9
Promote 0 Bookmark 02010-03-20quote  
initrd.img 應該沒有放所有的 .ko,所以換機器時,IDE driver .ko 有可能不在裏面,這也就是 HD 搬到其他機器有可能沒辦法開機的原因。我說的 compile 進去是說 compile 成 .ko,不是 link 進 kernel image。我自己 compile kernel,當然不會 compile 沒用到的 .ko。
edited: 1

cht電腦資訊Linux
adm Find login register
views:21798