Linux下将grub2安装到memdisk设备中

2025-11-06 08:36:57

1、#!/bin/sh

allmods=" "

allmods=$allmods" acpi.mod"

allmods=$allmods" affs.mod"

allmods=$allmods" afs.mod"

allmods=$allmods" ahci.mod"

allmods=$allmods" all_video.mod"

allmods=$allmods" ata.mod"

allmods=$allmods" at_keyboard.mod"

allmods=$allmods" bfs.mod"

#allmods=$allmods" blocklist.mod"

allmods=$allmods" btrfs.mod"

allmods=$allmods" bitmap.mod"

allmods=$allmods" bufio.mod"

allmods=$allmods" cat.mod"

allmods=$allmods" cbfs.mod"

allmods=$allmods" chain.mod"

allmods=$allmods" command.lst"

allmods=$allmods" configfile.mod"

#allmods=$allmods" cpio.mod"

allmods=$allmods" cpio_be.mod"

allmods=$allmods" cpuid.mod"

allmods=$allmods" crypto.lst"

allmods=$allmods" crypto.mod"

allmods=$allmods" date.mod"

allmods=$allmods" disk.mod"

allmods=$allmods" drivemap.mod"

allmods=$allmods" echo.mod"

allmods=$allmods" exfat.mod"

#allmods=$allmods" ext2.mod"

allmods=$allmods" extcmd.mod"

allmods=$allmods" fat.mod"

allmods=$allmods" font.mod"

allmods=$allmods" freedos.mod"

allmods=$allmods" fs.lst"

allmods=$allmods" functional_test.mod"

allmods=$allmods" gcry_arcfour.mod"

allmods=$allmods" gcry_blowfish.mod"

allmods=$allmods" gcry_crc.mod"

allmods=$allmods" gcry_md4.mod"

allmods=$allmods" gcry_md5.mod"

allmods=$allmods" gcry_rfc2268.mod"

allmods=$allmods" gcry_rmd160.mod"

allmods=$allmods" gcry_sha1.mod"

allmods=$allmods" gcry_sha256.mod"

allmods=$allmods" gcry_sha512.mod"

allmods=$allmods" gettext.mod"

allmods=$allmods" gfxterm_background.mod"

allmods=$allmods" gfxterm_menu.mod"

#allmods=$allmods" gfxmenu.mod"

#allmods=$allmods" gfxterm.mod"

allmods=$allmods" gzio.mod"

allmods=$allmods" halt.mod"

allmods=$allmods" hashsum.mod"

allmods=$allmods" help.mod"

allmods=$allmods" hfs.mod"

allmods=$allmods" hfsplus.mod"

allmods=$allmods" jfs.mod"

allmods=$allmods" jpeg.mod"

allmods=$allmods" keylayouts.mod"

allmods=$allmods" keystatus.mod"

allmods=$allmods" ldm.mod"

allmods=$allmods" linux16.mod"

allmods=$allmods" video_fb.mod"

allmods=$allmods" linux.mod"

allmods=$allmods" loadenv.mod"

#allmods=$allmods" loopback.mod"

allmods=$allmods" ls.mod"

allmods=$allmods" lsapm.mod"

allmods=$allmods" luks.mod"

allmods=$allmods" lzma_decompress.img"

allmods=$allmods" lzopio.mod"

allmods=$allmods" mdraid09.mod"

allmods=$allmods" mdraid09_be.mod"

allmods=$allmods" mdraid1x.mod"

#allmods=$allmods" memdisk.mod"

allmods=$allmods" memrw.mod"

#allmods=$allmods" minicmd.mod"

allmods=$allmods" minix.mod"

allmods=$allmods" minix2.mod"

allmods=$allmods" minix2_be.mod"

allmods=$allmods" minix3.mod"

allmods=$allmods" minix3_be.mod"

allmods=$allmods" minix_be.mod"

allmods=$allmods" mmap.mod"

allmods=$allmods" moddep.lst"

allmods=$allmods" msdospart.mod"

allmods=$allmods" multiboot.mod"

#allmods=$allmods" newc.mod"

allmods=$allmods" nilfs2.mod"

allmods=$allmods" ntfscomp.mod"

allmods=$allmods" ntldr.mod"

allmods=$allmods" odc.mod"

allmods=$allmods" ohci.mod"

allmods=$allmods" partmap.lst"

allmods=$allmods" parttool.lst"

allmods=$allmods" parttool.mod"

allmods=$allmods" part_acorn.mod"

allmods=$allmods" part_amiga.mod"

allmods=$allmods" part_apple.mod"

allmods=$allmods" part_bsd.mod"

allmods=$allmods" part_dvh.mod"

allmods=$allmods" part_gpt.mod"

#allmods=$allmods" part_msdos.mod"

allmods=$allmods" part_plan.mod"

allmods=$allmods" part_sun.mod"

allmods=$allmods" part_sunpc.mod"

allmods=$allmods" password.mod"

allmods=$allmods" password_pbkdf2.mod"

allmods=$allmods" pata.mod"

allmods=$allmods" pci.mod"

allmods=$allmods" play.mod"

allmods=$allmods" png.mod"

allmods=$allmods" priority_queue.mod"

allmods=$allmods" probe.mod"

allmods=$allmods" read.mod"

allmods=$allmods" procfs.mod"

#allmods=$allmods" reboot.mod"

#allmods=$allmods" reiserfs.mod"

allmods=$allmods" romfs.mod"

allmods=$allmods" scsi.mod"

allmods=$allmods" search.mod"

allmods=$allmods" search_fs_file.mod"

allmods=$allmods" search_fs_uuid.mod"

allmods=$allmods" search_label.mod"

allmods=$allmods" sendkey.mod"

allmods=$allmods" serial.mod"

allmods=$allmods" setpci.mod"

allmods=$allmods" sfs.mod"

allmods=$allmods" sleep.mod"

allmods=$allmods" squash4.mod"

allmods=$allmods" tar.mod"

allmods=$allmods" terminal.lst"

allmods=$allmods" terminal.mod"

allmods=$allmods" terminfo.mod"

allmods=$allmods" test.mod"

allmods=$allmods" testload.mod"

allmods=$allmods" test_blockarg.mod"

allmods=$allmods" time.mod"

allmods=$allmods" trig.mod"

allmods=$allmods" udf.mod"

allmods=$allmods" ufs1.mod"

allmods=$allmods" ufs1_be.mod"

allmods=$allmods" ufs2.mod"

allmods=$allmods" uhci.mod"

allmods=$allmods" usb.mod"

allmods=$allmods" usbtest.mod"

allmods=$allmods" usb_keyboard.mod"

allmods=$allmods" vbe.mod"

allmods=$allmods" vga.mod"

allmods=$allmods" vga_text.mod"

allmods=$allmods" video.lst"

allmods=$allmods" video.mod"

allmods=$allmods" videoinfo.mod"

allmods=$allmods" videotest.mod"

allmods=$allmods" video_bochs.mod"

allmods=$allmods" video_cirrus.mod"

allmods=$allmods" xfs.mod"

allmods=$allmods" xnu_uuid_test.mod"

allmods=$allmods" xzio.mod"

allmods=$allmods" zfs.mod"

allmods=$allmods" zfsinfo.mod"

current_dir=$(cd `dirname $0`; pwd)

mkdir -p /tmp/boot/grub/i386-pc

export ulg=/usr/lib/grub

export bg=/boot/grub

export temp=/tmp/boot/grub

cd $ulg/i386-pc

#cp $allmods *.lst $temp/i386-pc/

cp $allmods $temp/i386-pc/

cp -R $bg/locale $temp

echo 'set locale_dir=${prefix}/locale' >> $temp/grub.cfg

#echo "if search -s -f /grub2/grub.cfg; then" >> $temp/grub.cfg

echo 'search --no-floppy -f --set=root  /grub2/grub.cfg' >> $temp/grub.cfg

echo 'configfile /grub2/grub.cfg' >> $temp/grub.cfg

#echo " else" >> $temp/grub.cfg

#echo '        loadfont $prefix/font.pf2' >> $temp/grub.cfg

#echo '        menuentry "" {' >> $temp/grub.cfg

#echo "        true" >> $temp/grub.cfg

#echo "        }" >> $temp/grub.cfg

#echo '        menuentry "===cat (memdisk)/bot/grub/grub.cfg===" {' >> $temp/grub.cfg

#echo "        true" >> $temp/grub.cfg

#echo "        }" >> $temp/grub.cfg

#echo "fi" >> $temp/grub.cfg

cd /tmp

find boot | cpio -o -H newc > $ulg/i386-pc/memdisk.cpio

cd $ulg/i386-pc

grub-mkimage -O i386-pc -d . -o core.img -m memdisk.cpio -p '(memdisk)/boot/grub' -v biosdisk newc blocklist fat iso9660 pxe reiserfs memdisk cpio minicmd part_msdos ext2 ntfs loopback gfxmenu gfxterm reboot normal

cat lnxboot.img core.img > $current_dir/g2ldr

chmod 666 $current_dir/g2ldr

rm core.img memdisk.cpio

rm -rf /tmp/boot

echo "生成的g2ldr在脚本运行目录下"

将以上代码复制保存为mk-cpio.sh文件,在终端下运行:

sudo sh mk-cpio.sh

得到的g2ldr在脚本文件的同目录下。

2、贴上我的grub.cfg头内容:

search --no-floppy -f --set=root /grub2/grub.cfg

set default="0"

insmod all_video

insmod vbe

insmod vga

insmod video_bochs

insmod video_cirrus

font=/grub2/fonts/unicode.pf2

if loadfont $font ; then

  set gfxmode=1366x768

#insmod gfxterm

  set

  insmod gettext

fi

terminal_output gfxterm

#insmod gfxmenu

#loadfont ($root)/boot/grub/themes/deepin/unifont-regular-16.pf2

if search --no-floppy -f /grub2/themes/deepin/theme.txt; then

 insmod png

 set theme=/grub2/themes/deepin/theme.txt

else

 insmod png

 background_image /grub2/background.png

 set color_normal=red/black

 set color_highlight=magenta/black

fi

menuentry 'Deepin 2014.2 GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-eda72fcf-989d-445f-8260-02e1ddbed205' {

insmod gzio

insmod part_msdos

insmod ext2

set root='hd0,msdos10'

if [ x$feature_platform_search_hint = xy ]; then

 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos10 --hint-efi=hd0,msdos10 --hint-baremetal=ahci0,msdos10  eda72fcf-989d-445f-8260-02e1ddbed205

else

 search --no-floppy --fs-uuid --set=root eda72fcf-989d-445f-8260-02e1ddbed205

fi

linux /boot/vmlinuz-3.13.0-43-generic root=UUID=eda72fcf-989d-445f-8260-02e1ddbed205 ro  quiet splash $vt_handoff

initrd /boot/initrd.img-3.13.0-43-generic

}

下面是我制作好的:

链接:http://pan.baidu.com/s/1ntNxO73 密码:nl45

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢