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

版权声明:本文为fullee原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fullee/p/13280632.html