使用『grub-install』安裝GRUB

想要在UNIX-like的機器上安裝GRUB,這部分就必須要用superuser來呼叫『grub-install』,這個程式使用方式很簡單,只要一個參數,就是你想要把grub安裝到哪裡,也就是一個裝置檔(eg. /dev/sda)。

底下則是直接給個例子:

1.假設我有一個裝置『sdb』,我想要將GRUB安裝在這邊:

root@hugh-VirtualBox:/home/hugh\# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   16G  0 disk 
├─sda1   8:1    0   14G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0    2G  0 part \[SWAP\]
sdb      8:16   0  512M  0 disk 
sr0     11:0    1 1024M  0 rom

2.format這個裝置:

#這個format的內容我就不解釋了
root@hugh-VirtualBox:/home/hugh# fdisk /dev/sdb

3.製作一個檔案系統:

root@hugh-VirtualBox:/home/hugh# mkfs.ext4 /dev/sdb1

4.確定這個裝置已經變成我們要的容器:

root@hugh-VirtualBox:/home/hugh# parted /dev/sdb1 -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 537MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  211MB  210MB  primary  ext4

5.掛載這個裝置並且建立相關的資料夾:

root@hugh-VirtualBox:/home/hugh# mount /dev/sdb1 /mnt
root@hugh-VirtualBox:/home/hugh# mkdir /mnt/boot

6.將GRUB安裝到這個裝置上:

root@hugh-VirtualBox:/home/hugh# grub-install /dev/sdb --boot-directory=/mnt/boot
Installing for i386-pc platform.
Installation finished. No error reported.

7.檢查一下裝置內是否已經有相關檔案:

root@hugh-VirtualBox:/home/hugh# ls /mnt/boot/grub/
fonts  grubenv  i386-pc  locale

8.umount裝置

root@hugh-VirtualBox:/home/hugh# umount /mnt

其實grub-install只是一個shell script,真正建制GRUB的任務是透過『grub-mkimage』和『grub-setup』,當然你也可以直接用這兩個指令來建制你的GRUB,但是除非你真的很熟悉GRUB的運作,最好不要這樣作,因為在一台正在運作的OS上操作這些步驟是很危險的。

results matching ""

    No results matching ""