1. 程式人生 > 實用技巧 >U盤+grub2安裝centos8實戰

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命令搞到配置檔案裡,開機後顯示引導選單