Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

systemrescuecd 搭配 Grub2 開機時對網路卡的設定問題
post by tommy @ 03 元月, 2012 09:59

systemrescuecd 實在是一個好東西, 對於出問題的 Linux 來說, 有了這東西, 要修起來就變的方便許多. 一般的使用, 除了燒成光碟來使用外, 也可以放到 usb 隨身碟上頭使用.... 當然, 對於已經存在的系統來說, 更可以直接把 .iso 檔案丟到 /boot 或 / 下頭 (看你的 grub 能找到那一個), 讓 grub 直接載入該光碟來開機.

以 Debian 的系統來說, 可以加 /etc/grub.d/40_custom 這個檔案加上這一段:

menuentry 'SystemRescueCD' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd1,msdos2)'
search --no-floppy --fs-uuid --set 381a6d6d-8124-4ca1-ad02-703ef138a4a6
echo 'Loading SystemRescueCD ...'
loopback loop /systemrescuecd-x86-2.4.1.iso
linux (loop)/isolinux/altker64 isoloop=systemrescuecd-x86-2.4.1.iso
initrd (loop)/isolinux/initram.igz
}

上頭 root 那一段請自己改成你的 /boot 或 / 所在的 partition, 另外, search 那一段的 uuid 也設得改成你的 /boot partition 所用的 uuid (或改成不用 uuid 的方式). PS. 我用的是 altker64 這個比較新的 64 位元 kernel, 請改成你要用的那一個版本.

這樣子處理後, 開機在 grub 選單就可以選擇用 SystemRescueCD 來開機.

剩下的就是一些參數的調整, 下頭是我所用的參數:

  • docache

使用這個參數, 可以把整個 image 載入到記憶體中, 這樣子才可以對存在這個 .iso 檔案的 partition 做修改 (當然... 要改就要一次改好並把它再放回去, 不然就會不能用了).

  • dostartx

開機後直接執行 X (這要看你的需求, 不過多數應該都會進到 X 裡頭去作業會比較方便些).

  • setkmap=us

設定預設的鍵盤排列方式, 一般應該都是用 us, 如果沒設定會停下來詢問.

  • scandelay=1

加上短暫的 delay (其實放硬碟中應該可以不用加上這個) 來偵測 .iso 所放的位置.

  • vncserver=1:12345678

執行 vncserver 在 :1 上頭, 密碼是 12345678 (記得改成你用的). (沒辦法, 我用的 IP KVM 在 X 下頭對 mouse 指標的處理不正常, 會有段差距, 用起來不方便, 還是用 vnc 比較快.

  • nameif=eth0!00:1b:21:10:ab:9f,eth1!00:0e:0c:35:e5:0e

因為有好幾張網卡, 所以我們要確定所用的網卡是我們要的那一張, 可以用 mac address 來指定.

  •  eth0=192.168.0.11/24 eth1=220.130.11.143/24

指定網卡的 IP.

  •  gateway=220.130.11.254 dns=8.8.8.8

指定 gateway 與 dns.

原本以為這樣子就可以了.... 不過... 開機測了幾次, 發現網卡的順序是對的, 開機時的訊息也顯示應該有去指定正確的 IP.... 但是, 開機後, IP 就不見了.... 後來發現會啟動 Network Manager, 就會再處理一次, 這時 IP 就被改掉了. 所以我們要另外加上這個參數:

  • nonm

最後會像是這樣:

menuentry 'SystemRescueCD' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd1,msdos2)'
search --no-floppy --fs-uuid --set 381a6d6d-8124-4ca1-ad02-703ef138a4a6
echo 'Loading SystemRescueCD ...'
loopback loop /systemrescuecd-x86-2.4.1.iso
linux (loop)/isolinux/altker64 isoloop=systemrescuecd-x86-2.4.1.iso setkmap=us scandelay=1 docache dostartx forcevesa=1152x864x16 nonm nodhcp nameif=eth0!00:1b:21:10:ab:9f,eth1!00:0e:0c:35:e5:0e,eth2!00:24:1d:5e:64:1e eth0=192.168.0.11/24 eth1=220.130.11.143/24 eth2=192.168.128.11/17 gateway=220.130.11.254 dns=8.8.8.8 vncserver=1:12345678 initrd (loop)/isolinux/initram.igz
}

這樣子只要開機選這項目, 就可以做一些緊急的處置了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 57 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS