您的位置:首页 > 其它

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示例

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: