1. U盤准備
這里的U盤也可以換成硬盤
grub2安裝一直失敗,懷疑U盤壞了,下面命令修復了一下
[root@host2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 929.5G 0 part
├─cl-root 253:0 0 200G 0 lvm /
├─cl-swap 253:1 0 16G 0 lvm [SWAP]
└─cl-mnt_data 253:2 0 713.5G 0 lvm /mnt/data
sdb 8:16 1 30G 0 disk
sdb是我的u盤,這條命令執行了30分鍾才修復完成
[root@host2 ~]# dd if=/dev/zero of=/dev/sdb
dd: writing to '/dev/sdb': No space left on device
62980097+0 records in
62980096+0 records out
32245809152 bytes (32 GB, 30 GiB) copied, 2671.13 s, 12.1 MB/s
2. 向U盤安裝grub2
我這邊使用fdisk把U盤建了兩個分區sdb1,sdb2
[root@host2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 929.5G 0 part
├─cl-root 253:0 0 200G 0 lvm /
├─cl-swap 253:1 0 16G 0 lvm [SWAP]
└─cl-mnt_data 253:2 0 713.5G 0 lvm /mnt/data
sdb 8:16 1 30G 0 disk
├─sdb1 8:17 1 14.5G 0 part
└─sdb2 8:18 1 15.5G 0 part
之前用xfs格式的分區安裝grub2一直失敗,這里把第一個分區格式化成ext4
[root@host2 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 3799744 4k blocks and 950272 inodes
Filesystem UUID: 6c81f2b3-b24f-48a6-976f-9c467a6d8c39
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
把第一個分區掛載到/mnt/upan
[root@host2 ~]# mount /dev/sdb1 /mnt/upan/
安裝grub2
[root@host2 ~]# grub2-install --boot-directory=/mnt/upan/ /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
看到No error reported.到這里grub2已經安裝成功了
看一下U盤目錄,grub2文件夾就是grub程序目錄
[root@host2 upan]# ls
grub2 lost+found
3. 生成grub.cfg
[root@host2 iso]# grub2-mkconfig -o /mnt/upan/grub2/grub.cfg
Generating grub configuration file ...
done
4. 下載iso,並把iso文件復制到U盤
mv CentOS-8.2.2004-x86_64-dvd1.iso /mnt/upan/iso/CentOS-8.2.2004-x86_64-dvd1.iso
5. 開機設置bios,選擇U盤啟動
啟動完會顯示grub界面,接下來就可以執行命令了
# 設置啟動分區,hd0第一塊硬盤,msdos1第一個分區
grub> set root=(hd0,msdos1)
# loopback 有點像設置別名
grub> loopback loop /iso/CentOS-8.2.2004-x86_64-dvd1.iso
# grub> linux (loop)/isolinux/vmlinuz initrd=initrd.img linux dd quiet ,可以查看linux下分區格式,如sdc1
# 內核參數inst.stage2 指定鏡像位置,hd表示在硬盤,/dev/sdc1指定linux可識別的分區,/iso分區下的目錄
grub> linux (loop)/isolinux/vmlinuz inst.stage2=hd:/dev/sdc1:/iso quiet
grub> initrd (loop)/isolinux/initrd.img
# 從鏡像啟動
grub> boot
下一篇,把grub命令搞到配置文件里,開機后顯示引導菜單
GRUB官網:https://www.gnu.org/software/grub/index.html
金:http://www.jinbuguo.com/linux/grub.cfg.html