use grub2 make dual boot cd(support bios and UEFI)

使用grub2 製做支持BIOS&UEFI 雙啓動的ISO鏡像linux

首先就是準備grub2了。最新的Release版本能夠從這裏獲取: ftp://ftp.gnu.org/gnu/grub.ios

其餘信息參考 http://www.gnu.org/software/grub/vim

    Compiler:工具

    a. Download the newest released grub2 packageoop

    b. Decompress the package to path $grub2ui

    c. mkdir ~/grub2-bios ~/grub2-uefi, cd $grub2 mkdir build build-uefispa

    d. cd build, ../configure --prefix=${HOME}/grub2-bios, make , make install #compiler bios versionorm

    e: cd ../build-uefi ../configure --with-platform=efi --target=x86_64 --prefix=${HOME}/grub2-uefi,get

            make, make installinput

      Note: 正確的編譯grub2, 你須要安裝一些工具與lib,請參考grub INSTALL document。

    Make bin:

        Bios:

            cd ~/grub2-bios

            bin/grub-mkimage -p / -d ./lib/grub/i386-pc -O i386-pc core.img biosdisk udf iso9660 reboot halt linux #參數請參考幫助

            cat ./lib/grub/i386-pc/cdboot.img ./core.img > ./grub2cd.bin

        UEFI:

            cd ~/grub2-uefi

            bin/x86_64-grub-mkimage -d ./lib/grub/x86_64-efi -c preconfiguration.conf -p /efi/boot -O x86_64-efi \

                -o bootx64.efi ext2 fat ntfs part_msdos part_gpt search search_fs_file search_fs_uuid linux \

                acpi help reboot halt usb usbms boot chain efi_gop efi_uga gfxterm png tga echo udf ata pata

編譯並製做好用於引導系統的loader以後,就開始準備之中image鏡像文件了:

        mkdir ~/image

        cd image; mkdir -p efi/boot boot

        # copy linux bzImage initrd.gz to boot directory

        cp ~/grub2-bios/grub2cd.bin ./

        vim grub.cfg          #用於grub2cd.bin 使用的 配置文件,根據image的目錄結構配置cfg

        dd if=/dev/zero of=efiboot.img bs=1M count=4

        mkfs.vfat -F 32 efiboot.img

        mount -o loop -t vfat efiboot.img /mnt/loop

        mkdir -p /mnt/loop/efi/boot

        cp ~/grub2-uefi/bootx64.efi /mnt/loop/efi/boot

        umount /mnt/loop

        vim efi/boot/grub.cfg #用於efi firmware使用的配置文件

        genisoimage -A "Sample" -V "volume id" -J -joliet-long -r -v -input-charsetutf8 \

            -T -udf -o image.iso -b grub2cd.bin -no-emul-boot -boot-load-size 4 \

            -boot-info-table -eltorito-alt-boot -e efiboot.img -no-emul-boot . 

到此咱們的dual boot cd就製做好了。

這裏必定要製做udf格式的文件系統,若是作成iso9660的系統,某些光驅會出現讀取扇區錯誤。估計是grub2使用的iso9660的文件系統驅動問題。   

相關文章
相關標籤/搜索