grub2多重引导优盘
2016-02-18 00:00
357 查看
1.准备
a.软件:
grub2
memdisk
b.环境:
archlinux
c.硬件:
容量尽量大的U盘一枚
d.iso
根据自己的意愿从各大官网下载
2.Step by Step
1)确定U盘符号:sudo fdisk -l #俺的是sdb你的可不一定哦
2)重新分区U盘:sudo fdisk /dev/sdb
从2048扇区开始分起,给grub2留出空间
分且只分一个分区
注意激活分区
分区类型选c,fat32类型
3)格式化分区:sudo mkfs.fat -F 32 -n MBOOT /dev/sdb1
4)挂载U盘:sudo mount /dev/sdb1 /mnt
5)安装grub2 sudo grub-install --target=i386-pc --recheck --boot-directory=/mnt /dev/sdb
是/dev/sdb,可不是什么sdb1哦
不用grub-mkconfig什么的,grub.cfg手动创建(见后面的示例)
6)创建iso目录:sudo mkdir /mnt/iso
7)复制你想引导的iso到/mnt/iso/
8)从源安装syslinux:sudo pacman -S syslinux
sudo cp /usr/lib/syslinux/bios/memdisk /mnt/grub/
9)精简arch目录:
解压Archlinux最新安装镜像:archlinux.iso,复制其中的arch目录到U盘
删除arch/i686目录相应目录
3.grub.cfg示例
a.软件:
grub2
memdisk
b.环境:
archlinux
c.硬件:
容量尽量大的U盘一枚
d.iso
根据自己的意愿从各大官网下载
2.Step by Step
1)确定U盘符号:sudo fdisk -l #俺的是sdb你的可不一定哦
2)重新分区U盘:sudo fdisk /dev/sdb
从2048扇区开始分起,给grub2留出空间
分且只分一个分区
注意激活分区
分区类型选c,fat32类型
3)格式化分区:sudo mkfs.fat -F 32 -n MBOOT /dev/sdb1
4)挂载U盘:sudo mount /dev/sdb1 /mnt
5)安装grub2 sudo grub-install --target=i386-pc --recheck --boot-directory=/mnt /dev/sdb
是/dev/sdb,可不是什么sdb1哦
不用grub-mkconfig什么的,grub.cfg手动创建(见后面的示例)
6)创建iso目录:sudo mkdir /mnt/iso
7)复制你想引导的iso到/mnt/iso/
8)从源安装syslinux:sudo pacman -S syslinux
sudo cp /usr/lib/syslinux/bios/memdisk /mnt/grub/
9)精简arch目录:
解压Archlinux最新安装镜像:archlinux.iso,复制其中的arch目录到U盘
删除arch/i686目录相应目录
3.grub.cfg示例
set timeout=10 set default=3 set archlabel=ARCH #排在最前面的当然是我大ARCH menuentry "ArchLinuxx86_64" { insmod part_msdos insmod fat set root='hd0,msdos1' linux /arch/boot/i686/vmlinuz archisobasedir=arch archisolabel=fairy initrd /arch/boot/i686/archiso.img } #据说最NB的KDE最严谨的民族做出来的发行版 menuentry "openSUSE-13.1-KDE-Live-x86_64" { set isofile="/iso/opensuse.iso" loopback loop $isofile linux (loop)/boot/x86_64/loader/linux isofrom_device=/dev/disk/by-uuid/$uuid isofrom_system=$isofile.UTF-8 initrd (loop)/boot/x86_64/loader/initrd } #偶尔也会想HACK一下,测试自己的水平顺带装13. menuentry "kali-linux-1.09a-amd64" { set isofile="/iso/kali.iso" loopback loop $isofile linux (loop)/live/vmlinuz findiso=$isofile boot=live noconfig=sudo username=root hostname=kali noswap initrd (loop)/live/initrd.img } #怀念一下带领自己进入linux世界的发行版 menuentry "Ubuntu 14.10" { set isofile="/iso/ubuntu.iso" loopback loop $isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=zh_CN.UTF-8 quiet noeject noprompt splash -- initrd (loop)/casper/initrd.lz } #没有测试过,顺带贴出 menuentry "Fedora" { set isofile="/iso/fedora.iso" loopback loop $isofile linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-gnome-x86_64-20-1 iso-scan/filename=$isofile rd.live.image initrd (loop)/isolinux/initrd0.img } #嗯嗯~以后可能会用到 #menuentry '[loopback]CentOS-7.0-1406-x86_64-GnomeLive' { # set i 3ff0 sofile='/iso/CentOS-7.0-1406-x86_64-GnomeLive.iso' # loopback loop $isofile # linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-live-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image # initrd (loop)/isolinux/initrd0.img #} #把人能搞疯狂的渣渣,资料最少,最语焉不详。原来新电脑能启动的是win7内核的PE! #采用memdisk方式要求镜像尽可能小,否则载入缓慢。 menuentry "Win7PE.iso" { insmod part_msdos insmod fat set root='(hd0,1)' linux16 /grub/memdisk iso raw initrd16 /iso/win7pe.iso } #旧(预装WinXP)的电脑可能适用(暂无测试条件) menuentry "BootCD.iso(laomaotao)" { insmod part_msdos insmod fat set root='(hd0,1)' linux16 /grub/memdisk iso raw initrd16 /iso/BootCD.iso } #本地磁盘启动 menuentry "Boot HDD" { chainloader +1 } #重启 menuentry "Reboot" { reboot } #关机 menuentry "Shutdown" { halt }
相关文章推荐
- Virtualbox搭建LNMP-2
- java.lang.NullPointerException: Expected timestamp
- mapreduce小文件合并&文件过滤器的使用
- MapReduce的输出格式
- Android Studio配置Annotations
- 常用正则表达式
- DES、3DES加密算法(转载整理)
- org.apache.jasper.jasperException
- 联通银行卡代扣功能的设计实现
- Ubuntu 开发环境配置.md
- Redis_安装配置.md
- Mybatis Could not find result map java.lang.Intege
- 编程式事务的简单使用
- 云盒子企业私有云对局域网共享软件的代替
- PHP批量生成图片缩略图
- php实现简单的验证码功能
- php实现一个简单的加密解密处理类
- SSH连接服务器出错解决方法,
- php图片加水印, 生成缩略图
- php实现身份证号码检查类