U盘+grub2安装centos8实战
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