製做grub2引導的啓動U盤

一、fdisk /dev/sdb給U盤分區,其中sdb1爲vfat,用於平時的文件存放;sdb2爲linux,格式化爲ext2,存放啓動的grub的模塊與相關配置。 設置sdb2爲active(可啓動)。linux

二、用lsblk -f或blkid /dev/sdb2得到/dev/sdb2的uuid。ubuntu

三、掛載/dev/sdb2到/mnt/disk0,執行grub-install --no-floppy --root-directory=/mnt/disk0 /dev/sdbwindows

四、配置文件copy:ide

# cp /boot/grub/grub.cfg /mnt/disk0/boot/grub/grub.cfgoop

# mkdir -p /mnt/disk0/etc/default
# cp /etc/default/grub /mnt/disk0/etc/default
# cp -a /etc/grub.d /mnt/disk0/etcui

五、修改grub.cfg中的menuentry,例如:操作系統

menuentry 'TinyCore' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos2'
    search --no-floppy --fs-uuid --set=root 96810d5f-6a43-4c40-821c-58443477953f
    linux    /tce/boot/vmlinuz quiet waitusb=5:UUID="96810d5f-6a43-4c40-821c-58443477953f" tce=UUID="96810d5f-6a43-4c40-821c-58443477953f"
    initrd    /tce/boot/core.gz 
}it


menuentry 'Ubuntu 16.04.1  livecd amd64' class iso{
    insmod part_msdos
    insmod ext2
    set isofile="/iso/lubuntu-16.04.1-desktop-amd64.iso"
    set root='hd0,msdos2'
    loopback loop (hd0,msdos2)$isofile
    linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
    initrd (loop)/casper/initrd.lz
}io

####memdisk (from syslinux)class

menuentry "Boot WinPE ISO" --class windows {
        set root=(hd0,msdos2)
    echo 'Loading Memdisk...'
        linux16 /memdisk iso raw
    echo 'Loading ISO...'
        initrd16 /WINPE.iso                                  
}

menuentry "Windows XP" {
         set root=(hd0,x)
         ntldr /ntldr
         boot

 

----------------------------------------------------

其它:

操做系統中update-grub的腳本在/usr/sbin下,至關於:

set -e 

exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

相關文章
相關標籤/搜索