|
本帖最后由 qli365 于 2019-12-15 18:09 编辑
先准备 ubuntu-18.04.3-desktop-amd64.iso 一会编译就在ubuntu18下完成,我是虚拟机内存不够,所以U盘grub直接启动,可以调用整机资源。
先查询那个是U盘所在的分区,使用下面命令
# fdisk -l
我的U盘是sdc
预备u盘分3个区
/dev/sdc1小一些,UEFI FAT32
/dev/sdc2大一些,linux分区 存放grub2.04文件 加上boot标记
/dev/sdc3用作文件存储
格式化硬盘
# fdisk /dev/sdc
p[显示分区]-->>d[删除原有分区]-->>n[添加新分区]
p[主分区]-->>1-->>2048-1 500 000=743.4Mb
p[主分区]-->>2-->>1501184-20 000 000=8.8G
p[主分区]-->>2-->>20 000 000 - 最后
t[更改分区类型]-->>1-->>ef[EFI(FAT-12/16/32)]
t[更改分区类型]-->>2-->>83 linux
t[更改分区类型]-->>3-->>6 FAT16
a[可启动标志]-->>w[保存分区]
完成后是这样的,下面带*的是可启动分区
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 1500000 1497953 731.4M ef EFI (FAT-12/16/32)
/dev/sdc2 * 1501184 20000000 18498817 8.8G 83 Linux
/dev/sdc3 20000768 30433279 10432512 5G 6 FAT16
格式化U盘
将sdc1分区格式化为fat32格式
# mkfs -t vfat /dev/sdc1
# mkfs -t ext3 /dev/sdc2
# mkfs -t vfat /dev/sdc3
挂载U盘
按照该对应方式挂载
/dev/sdc1 >>> /home/ubuntu/Desktop/sdc1dir
/dev/sdc2 >>> /home/ubuntu/Desktop/sdc2dir
当前目录是在/home/ubuntu/Desktop/
# mkdir sdc1dir
# mkdir sdc2dir
# chmod 777 sdc1dir
# chmod 777 sdc2dir
# mount /dev/sdc1 sdc1dir/
# mount /dev/sdc2 sdc2dir/
到此U盘分区就完成了,第3个分区主要存储文件,以后再说。
如果编译 grub2.04 还需要提前安装些软件
# apt-get -y install gcc automake autoconf make bison flex unifont
需要注意的是我们要使用biso和efi都能启动的u盘系统,按照grub2.04的设置有个关于当前系统的检测,其他的就不能编译了,我代参数编译2次安装2次。
打开命令行
#terminal
下载到桌面
# wget https://ftp.gnu.org/gnu/grub/grub-2.04.tar.gz
解压
# tar -xvf grub-2.04.tar.gz
进入目录
# cd grub目录
MBR Bios 编译安装
# ./configure --target=i386
# make
# make install
# grub-install --version
grub-install (GRUB) 2.04 此处要说下,我的ubuntu是旧版的,不要在编译前使用此命令,使用了是旧版自带的
安装到U盘,运行下面的命令,U盘会有安装文件,注意目录
# grub-install --target=i386-pc --boot-directory=/home/ubuntu/Desktop/sdc2dir/boot/bios/ /dev/sdc
UEFI 编译安装
保证安全把以前编译的文件夹删除调,注意当前目录是 /home/ubuntu/Desktop/
# rm -rf grub-2.04
# tar -xvf grub-2.04.tar.gz
# chmod -R 777 grub-2.04
# cd grub-2.04
# ./configure --target=x86_64 --with-platform=efi
# make
# make install
# grub-install --version
grub-install (GRUB) 2.04
# grub-install --target=x86_64-efi --boot-directory=/home/ubuntu/Desktop/sdc2dir/boot/efi/ --efi-directory=/home/ubuntu/Desktop/sdc1dir/ --removable
到此处还需要拷贝写文件
拷贝字体
# cp /boot/grub/unicode.pf2 sdb1dir/boot/bios/grub/fonts/
拷贝背景图
# cp grub-2.04/themes/starfield/starfield.png sdb1dir/boot/
拷贝grub.cfg
# cp grub-2.04/docs/grub.cfg sdb1dir/boot/
最后罗嗦说下,ubuntu 可以直接使用iso直接grub2调用进入,从官网下载文件后拷贝到U盘一直出问题,查出是下载文件问题,使用以前文件直接启动,可以前编译的grub2启动没有问题,也不知道编译的有没有问题,以上仅供大家参考阿。
还有在目录下有个style样式主题可以完全拷贝到u盘调用。
|
|