# Config file for GRUB2 - The GNU GRand Unified Bootloader

# /boot/grub/grub.cfg


# DEVICE NAME CONVERSIONS

#

#  Linux           Grub

# -------------------------

#  /dev/fd0        (fd0)

#  /dev/sda        (hd0)

#  /dev/sdb2       (hd1,2)

#  /dev/sda3       (hd0,3)

#


# Timeout for menu

set timeout=5


# Set default boot entry as Entry 0

set default=3



#insmod lvm

insmod part_msdos

insmod ext2

insmod font

search -n -f /boot/grub/grub.cfg --set=boot_part

if [ -e ($boot_part)/boot/grub/unicode.pf2 ] ; then

    loadfont ($boot_part)/boot/grub/unicode.pf2

fi

#loadfont (hd0,1)/grub/unicode.pf2

#loadfont (hd0,1)/boot/grub/unicode.pf2

#search -n -f /boot/grub/fonts/unicode.pf2 --set=font_part

#loadfont ($font_part)/boot/fonts/grub/unicode.pf2


#insmod jpeg

#background_image (hd0,9)/grub/oxygen_1024x768.jpg

#background_image (hd0,9)/boot/grub/lxde_blue.jpg

#-----------------------

# ok

#insmod png

#background_image (hd0,9)/boot/grub/lxde_blue.png

#-----------------------

#insmod png

#background_image /boot/grub/gentoo.png 



#if loadfont (hd0,9)/usr/share/grub/unicode.pf2 ; then

#if loadfont (hd0,9)/grub/unicode.pf2 ; then

set gfxmode="1024x768x32"

set gfxpayload=keep

#insmod font

insmod gfxterm

insmod vbe

if terminal_output gfxterm ; then true ; else

#       # For backward compatibility with versions of terminal.mod that don't

#       # understand terminal_output

   terminal gfxterm

fi



set menu_color_normal=light-blue/black

set menu_color_highlight=light-cyan/blue


menuentry "Arch Linux 硬盘系统 x86_64" {

    #set root=(hd0,8)

    #/dev/disk/by-label/usb_arch_64

    set root_label=arch64

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    #linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootdelay=5 liveusb archlive init=/bin/systemd 

    #linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootwait liveusb archlive init=/bin/systemd 

    linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label rw  rootfstype=ext4 rootwait liveusb archlive init=/usr/lib/systemd/systemd 

    #systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M

    initrd /boot/initramfs-linux-fallback.img

}



menuentry "Arch Linux 硬盘系统 x86_64 LTS" {

    #set root=(hd0,8)

    #/dev/disk/by-label/usb_arch_64

    set root_label=arch64

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    #linux /boot/vmlinuz-linux-lts root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootdelay=5 liveusb archlive

    linux /boot/vmlinuz-linux-lts root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootwait liveusb archlive

    initrd /boot/initramfs-linux-lts-fallback.img

}




menuentry "Arch Linux 硬盘系统 i686" {

    #set root=(hd0,8)

    set root_label=ubuntu

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    #linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootdelay=3 liveusb archlive

    linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootwait liveusb archlive

    initrd /boot/initramfs-linux-fallback.img

}



## (3) Windows

menuentry "进入Windows7系统" {

insmod part_msdos

    #drivemap -s (hd0) (hd1)

    set root=(hd0)

    chainloader  (hd0,msdos1)+1

}


menuentry "进入Windows server 2003系统" {

insmod part_msdos

    #drivemap -s (hd0) (hd1)

    set root=(hd0)

    chainloader  (hd0,msdos2)+1

}


## (1) Windows

menuentry "进入Windows系统" {

insmod part_msdos

    #drivemap -s (hd0) (hd1)

    set root=(hd0)

    chainloader  (hd0,msdos1)+1

    #chainloader  (hd1,msdos1)+1

}

menuentry "Windows next hard driver" {

insmod part_msdos

    drivemap -s (hd0) (hd1)

    set root=(hd0)

    chainloader  (hd1,msdos1)+1

}



menuentry "Arch Linux 烧卡系统 " {

    #set root=(hd0,8)

    set root_label=usb_root 

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    #linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootdelay=3 liveusb archlive

    linux /boot/vmlinuz-linux root=/dev/disk/by-label/$root_label ro  rootfstype=ext4 rootwait liveusb archlive

    initrd /boot/initramfs-linux-fallback.img

}


menuentry "安装ubuntu 11.04 amd64" {

    #set root=(hd0,8)

    set root_label=usb_develop 

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    linux /vmlinuz iso-scan/filename=/ubuntu-11.04-desktop-amd64+mac.iso boot=casper ro splash locale=zh_CN.UTF-8

    initrd /initrd.lz

}





menuentry 'LinuxMint 3.2.0-4-amd64' --class ubuntu --class gnu-linux --class gnu --class os {

#recordfail

#set gfxpayload=$linux_gfx_mode

insmod gzio

insmod part_msdos

insmod ext2

#set root='(hd0,msdos9)'

#search --no-floppy --fs-uuid --set=root 7d497b79-c45b-41f2-aa2b-ac1c20518d11


set kernel_version='3.2.0-4-amd64'

set root_label=mint64

search --label --no-floppy --set=root $root_label


linux /boot/vmlinuz-$kernel_version root=/dev/disk/by-label/$root_label ro   quiet splash vt.handoff=7

initrd /boot/initrd.img-$kernel_version

}

menuentry 'LinuxMint Linux 3.2.0-4-amd64(恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {

#recordfail

insmod gzio

insmod part_msdos

insmod ext2

set kernel_version='3.2.0-4-amd64'

set root='(hd0,msdos9)'

set root_label=mint64

search --label --no-floppy --set=root $root_label


#search --no-floppy --fs-uuid --set=root 7d497b79-c45b-41f2-aa2b-ac1c20518d11

echo "载入 Linux ${kernel_version}"

#linux /boot/vmlinuz-3.2.0-18-generic root=UUID=7d497b79-c45b-41f2-aa2b-ac1c20518d11 ro recovery nomodeset 

linux /boot/vmlinuz-$kernel_version root=/dev/disk/by-label/$root_label ro   recovery nomodeset

echo '载入初始化内存盘...'

initrd /boot/initrd.img-$kernel_version

}




menuentry "live ubuntu-12.04-desktop-amd64.iso" {

    insmod loopback

    insmod ext2

    insmod iso9660    

    

    set root_label=data_2t

    search --label --no-floppy --set=root $root_label


    loopback loop ($root)/linux_iso/ubuntu-12.04-beta1-desktop-amd64.iso

    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/linux_iso/ubuntu-12.04-beta1-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8

    initrd (loop)/casper/initrd.lz

}


menuentry "live ubuntu-11.10-desktop-amd64.iso" {

    insmod loopback

    insmod ext2

    insmod iso9660    

    

    set root_label=data_2t

    search --label --no-floppy --set=root $root_label


    loopback loop ($root)/linux_iso/ubuntu-11.10-desktop-amd64.iso

    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/linux_iso/ubuntu-11.10-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8

    initrd (loop)/casper/initrd.lz

}

menuentry "live ubuntu-12.04-desktop-amd64.iso from C by iso" {

    insmod loopback

    insmod ext2

    insmod iso9660    

    #set root='(hd0,msdos1)'

    set root_label=data_2t

    search --label --no-floppy --set=root $root_label


    loopback loop ($root)/linux_iso/ubuntu-12.04-beta1-desktop-amd64.iso

    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/linux_iso/ubuntu-12.04-beta1-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8

    initrd (loop)/casper/initrd.lz


    #linux ($root)/vmlinuz boot=casper iso-scan/filename=/linux_iso/ubuntu-12.04-beta1-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8

    #initrd ($root)/initrd.lz

    #initrd (loop)/casper/initrd.lz


}


menuentry "winpe" --class windows --class os {

    #pacman -S syslinux

    insmod part_msdos

    set root_label=arch64

    search --label --no-floppy --set=root $root_label


    #insmod memdisk

    #set root='(hd0,msdos6)'

    #search --no-floppy --fs-uuid --set=root B6E87D85E87D4521

    #set isofile="/Iso/Microsoft_Windows_XP_Professional_x86_with_SP3_CD.iso"

    set iso_file_name="/WINDOWS_iso/Win7PE-CN.iso"

    search --file --set=isopart $iso_file_name

    set isofile="($isopart)${iso_file_name}"

    set memdisk_file="(${root})/usr/lib/syslinux/memdisk"

    #set memdisk_file="/usr/lib/syslinux/memdisk"  #use root

    #linux16  (hd0,msdos7)/boot/memdisk iso

    linux16   $memdisk_file iso

    initrd16 $isofile

}



menuentry "Archlinux in loop x86_64 (on loop 自动搜索方式)" {  

    insmod part_msdos  

    insmod reiserfs  

    insmod loopback  

  

    #set img_label=winxp    #固定label时使用,此处屏蔽  

    set img_file=Arch/Arch-x86_64.img  

    search --file --no-floppy --set=img_root /$img_file     #搜索指定文件  

    #search --label --no-floppy --set=img_root $img_label   #固定label方式  

    #loopback loop0 (hd0,msdos9)/$img_file  

    probe $img_root -l --set=img_label          #探测label ,目标label 不能有中文等无法识别的字符  

    #probe $img_root -u --set=img_root_uuid     #探测uuid 但测试发现因为大小写问题导致linux的by-uuid值不匹配  

    loopback loop0 ($img_root)/$img_file  

    set root=(loop0)  

    linux /boot/vmlinuz-linux real_root=loop=/dev/disk/by-label/$img_label loopfile=$img_file  rootwait

    #linux /boot/vmlinuz26 real_root=loop=/dev/disk/by-uuid/$img_root_uuid loopfile=$img_file  quiet   

    initrd /boot/initramfs-linux-fallback.img

}  


menuentry "Archlinux in loop x86_64 (on loop 自动搜索方式 systemd)" {  

    insmod part_msdos  

    insmod reiserfs  

    insmod loopback  

  

    #set img_label=winxp    #固定label时使用,此处屏蔽  

    set img_file=Arch/Arch-x86_64.img  

    search --file --no-floppy --set=img_root /$img_file     #搜索指定文件  

    #search --label --no-floppy --set=img_root $img_label   #固定label方式  

    #loopback loop0 (hd0,msdos9)/$img_file  

    probe $img_root -l --set=img_label          #探测label ,目标label 不能有中文等无法识别的字符  

    #probe $img_root -u --set=img_root_uuid     #探测uuid 但测试发现因为大小写问题导致linux的by-uuid值不匹配  

    loopback loop0 ($img_root)/$img_file  

    set root=(loop0)  

    linux /boot/vmlinuz-linux real_root=loop=/dev/disk/by-label/$img_label loopfile=$img_file  init=/bin/systemd rootwait

    #linux /boot/vmlinuz26 real_root=loop=/dev/disk/by-uuid/$img_root_uuid loopfile=$img_file  quiet   

    initrd /boot/initramfs-linux-fallback.img



menuentry "archiso_zfs-改进自动搜索功能x86_64" {

    set iso_file=archlinux-2013.06.26-dual.iso

    set arch_label=ARCH_201306

    set img_file=$iso_file

    search --file --no-floppy --set=img_root /$img_file     #搜索指定文件

    #search --label --no-floppy --set=img_root $img_label   #固定label方式


    probe $img_root -l --set=img_label          #探测label ,目标label 不能有中文等无法识别的字符

    #probe $img_root -u --set=img_root_uuid     #探测uuid 但测试发现因为大小写问题导致linux的by-uuid值不匹配

    loopback loop0 ($img_root)/$img_file

    set root=(loop0)

    linux /arch/boot/x86_64/vmlinuz   img_dev=/dev/disk/by-label/$img_label  img_loop=$iso_file  archisolabel=$arch_label ramdisk_size=75%

    initrd /arch/boot/x86_64/archiso.img

 }


menuentry "LMDE 2013.03 amd64" {

    #set root=(hd0,8)

    set root_label=backup_2t 

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    linux /develop/class_by_os/linux/linuxmint/vmlinuz iso-scan/filename=/develop/class_by_os/linux/linuxmint/linuxmint-201303-cinnamon-dvd-64bit.iso boot=casper ro splash locale=zh_CN.UTF-8

    initrd /develop/class_by_os/linux/linuxmint/initrd.lz

}


menuentry "LMDE 2013.03 amd64 222" {

    #set root=(hd0,8)

    set root_label=backup_2t 

    search --label --no-floppy --set=root $root_label

    set gfxpayload=keep

    linux /develop/class_by_os/linux/linuxmint/vmlinuz iso-scan/filename=/develop/class_by_os/linux/linuxmint/linuxmint-201303-cinnamon-dvd-64bit.iso locale=zh_CN.UTF-8 boot=live live-media-path=/casper

    initrd /develop/class_by_os/linux/linuxmint/initrd.lz

}


menuentry "Linux Mint Debian" {

    set root_label=backup_2t 

    set iso_file_name=/develop/class_by_os/linux/linuxmint/linuxmint-201303-cinnamon-dvd-64bit.iso

    search -n --file $iso_file_name  --set=root_label 

    #search -n -f /boot/grub/grub.cfg --set=boot_part

    search --label --no-floppy --set=root $root_label

    #set root='(hd0,msdos2)'

    loopback loop $iso_file_name

    linux (loop)/casper/vmlinuz isofrom=/dev/disk/by-label/$root_label/$iso_file_name boot=live live-media-path=/casper noeject nopromt --

    initrd (loop)/casper/initrd.lz

}