博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用grub2制作多启动U盘
阅读量:5319 次
发布时间:2019-06-14

本文共 2266 字,大约阅读时间需要 7 分钟。

很久以前就做过一个基于grub2的多启动u盘,但是没有做记录,这一次做个记录,供大家参考,也做个备忘。

以前只是做到了从U盘安装Ubuntu,以及通过pe安装win,这次还整合了CentOS(我只试验了CentOS7,其它版本估计不行,因为其它版本不是用的grub2引导)。
以前比较菜,只能按照教程一步步来,虽然现在也很菜,但是感觉懂得多了一点。
以前以为要做多启动盘时,u盘只能有一个分区,现在发现不是的,只需要将grub2装到一个分区就行了,这次我在自己的移动硬盘上分了一个区出来,也装上了。
下面开始安装吧。

原材料

  1. 一个足够大的U盘(或者一个移动硬盘也行)
  2. 一个Ubuntu操作系统(livecd启动的也行)
  3. 一个pe的ISO及若干操作系统镜像(Ubuntu Live CD、CentOS7 Live CD)

下面开始正式安装,一下操作均在Ubuntu中进行

格式化U盘

# 查看一下磁盘情况
shell>> fdisk -l
# umount要格式化的磁盘,我使用的是/dev/sdc3
# 如果没有挂载,没有这一步操作
shell>> umount /dev/sdc3
# 格式化
shell>> mkfs.vfat -F 32 -n MULTIBOOT /dev/sdc3

安装grub2到/dev/sdc3

# 挂载/dev/sdc3
shell>> mkdir -p /media/MULTIBOOT
shell>> mount /dev/sdc3 /media/MULTIBOOT
# 安装grub2,注意这个命令中最后使用的/dev/sdc,而不是/dev/sdc3
shell>> grub-install --force --no-floppy --boot-directory=/media/MULTIBOOT /dev/sdc
shell>> cd /media/MULTIBOOT
# 获取grub.cfg
shell>> wget pendrivelinux.com/downloads/multibootlinux/grub.cfg

把ISO copy到u盘

首先需要在U盘根目录下创建一个文件夹叫ISO,然后将ISO拷贝到这个目录下。

winpe的启动需要一个特殊的文件叫做memdisk,大家可以上网百度一下,如果找不到可以Email我,我发给你(407778367@qq.com)

配置grub.cfg

需要启动某个系统,只需要将对应的镜像拷贝ISO目录下,并在在grub.cfg中配置即可。

以下是我的配置

# This grub.cfg file was created by Lance http://www.pendrivelinux.com
# Suggested Entries and the suggestor, if available, will also be noted.
 
set timeout=10
set default=0
 
menuentry "WinPE" {
linux16 /ISO/memdisk iso
initrd16 /ISO/winpe.iso
}
 
menuentry 'Ubuntu 14.04.2(64)' {
set isofile="/ISO/ubuntu-14.04.2-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
initrd (loop)/casper/initrd.lz
}
 
menuentry 'CentOS Linux 7 1503 Live' --class fedora --class gnu-linux --class gnu --class os {
insmod loopback
 
set iso_path="/ISO/CentOS-7-x86_64-LiveCD-1503.iso"
loopback loop $iso_path
    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=$iso_path root=live:CDLABEL=CentOS-7-livecd-x86_64 rootfstype=auto ro quiet rd.live.image noeject rhgb rd.luks=0 rd.md=0 rd.dm=0
initrd (loop)/isolinux/initrd0.img
}
#menuentry "Ubuntu Desktop ISO(32)" {
# loopback loop /ubuntu.iso
# linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject noprompt splash --
# initrd (loop)/casper/initrd.lz
#}

重启电脑,测试一下

现在可以重启电脑,测试一下了。

参考文章

转载于:https://www.cnblogs.com/zhangteng512/p/4612923.html

你可能感兴趣的文章
jQuery Easy UI Resizable(调整大小)组件
查看>>
android AlarmManager采用
查看>>
Sail
查看>>
Fast R-CNN论文理解
查看>>
走楼梯
查看>>
C# JSON字符串序列化与反序列化
查看>>
HTTPS、SPDY和HTTP/2的性能比较
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
Angular实践----理解数据绑定过程
查看>>
sublime快捷键
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Hyper-V Centos7 网络设置 虚拟机固定IP
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(31):画刷 转:http://blog.csdn.net/tcjiaan/article/details/7460226
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
记Angular与Django REST框架的一次合作(2):前端组件化——Angular
查看>>
08.存储Cinder→5.场景学习→08.Backup Volume→1.概述与配置
查看>>
进阶之路(基础篇) - 012 Arduino IDE 添加DHT11传感器第三方库的方法
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>