2016年11月13日 星期日

GRUB命令列的使用方法

在更新系統,或是轉移系統的時候,因為核心修改或是硬體更改的緣故,有時候會造成系統開機時卡在開機管理程式GRUB上面。這時候螢幕會出現GRUB的版本,後面接著提示符號長得像是  grub>
下面就來介紹此GRUB命令列要輸入什麼才能讓系統正常開機:
  1. ls
  2. set root=(hd0,msdos2)
  3. linux /vmlinuz.xxx root=/dev/sda3 
  4. initrd /initramfs.xxx.img
  5. boot

先假設現在只有裝一個硬碟/dev/sda,上面用MBR方式分割了四個磁區分別是sda1, sda2, sda3, sda4。這邊要假設 sda2掛載原系統的/boot、sda3掛載原系統的/
  1. 列出所有的硬碟與磁區。第一個硬碟會是hd0;第一個磁區會是msdos1
  2. 這邊指令裡面的root代表的其實是boot,所以要設定root=(hd0,msdos2)第一個硬碟的磁區。設定好以後grub才知道要去哪邊讀取系統核心與驅動程式模組
  3. 載入系統核心vmlinuz。xxxx代表的是編號,去找到能夠正常開機那個。後面接root就是根目錄所在的磁區,在這個例子裏面是/dev/sda
  4. 載入開機會用到的檔案系統initramfs.xxx.img。xxxx是編號,此initramfs通常裡面還會包含一些沒有放在系統核心的驅動程式模組
  5. 根據上述的vmlinuz與initramfs開始開機

這邊文章參考了Marko Tomic的《Load kernel and boot your system with GRUB2》

_EOF_

沒有留言:

張貼留言