grub2多重引导优盘

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 isofile='/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
}

转载于:https://my.oschina.net/jonetwelve/blog/617221

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值