多语言展示
当前在线:245今日阅读:167今日分享:16

利用grub2制作U盘引导盘引导iso系统

本经验教授你制作多iso系统U盘引导盘的方法。本方法已经被我使用多次,在多种机器上利用下载的系统iso文件给电脑安装操作系统。不仅可以用来给实体机安装linux的多种发行版,还可以用来安装 ghost 的windows系统。方法非常好非常有效。但是,本方法不适合没有 linux 基础的人学习,如果你没有 linux 基础,请另寻方法。
工具/原料
1

一个大于4G的U盘,或者一个读卡器及一个大于4G的TF卡

2

一台安装有 fedora (或 Debian\Ubuntu\Red Hat\CentOS\Arch Linux)的电脑

方法/步骤
2

在该U盘上安装grub2 (注意,不是 grub,它们是不同的东西了)安装的方法是:Fedora Centos 等$ sudo grub2-install --no-floppy --root-directory=/run/media/user/mutiboot /dev/sdbArchlinux Debian Ubuntu 等$ sudo grub-install --no-floppy --root-directory=/run/media/user/mutiboot /dev/sdb这里/run/media/user/mutiboot是u盘的挂载点,/dev/sdb是u盘设备,这两处需要根据实际情况修改。安装成功会显示成功的信息,并且在u盘中会有/boot/grub2(或/boot/grub)目录。

3

复制 memdisk 文件,用于引导 WinPE到我的网盘中下载 memdisk 文件,地址如下:http://pan.baidu.com/s/1c0x63XQ将解压后的 memdisk 文件复制到U盘的根目录或 /boot目录下。

4

查询U盘的 uuid使用命令查询 U盘的 uuid,命令如下:ls -l /dev/disk/by-uuid/从输出信息中找到U盘对应的 uuid ,并复制到U盘 /boot 目录下子目录中的 grub.cfg 文件中,作为USBUUID参数的数值,假设得到的 uuid 为 aaaa-aaaa。那么该设置为:set USBUUID="aaaa-aaaa"

5

下载可以用于启动电脑的 iso 文件到U盘的根目录比如我下载了这些 iso 文件:archlinux-2014.10.01-dual.isoFedora-Live-Workstation-x86_64-22-3.isoFedora-Live-Workstation-x86_64-23-10.isopmagic-4.5.isoslax-Chinese-Simplified-7.0.8-i486.isoTinyCore-current.isoWin8PE.iso(以上文件请各自到网络上寻找,根据你自己的需要)由于 windows 的 iso 文件往往太大,不利于引导,我这里使用了Win8PE.iso来引导一个 winPE 系统的间接方式来安装 windows 操作系统。所以我还下载了一个 ghost 文件,放在根目录中。如:win7.gho (这个文件可以从 windows 的 ghost 安装(包) iso 文件中解压出来

6

修改 grub.cfg 文件,设置引导我的 grub.cfg 文件内容如下,谨供大家参考:set timeout=10insmod fatset default=0loadfont /boot/grub2/fonts/unicode.pf2set gfxmode=1024x768set gfxpayload=keepinsmod gfxterminsmod vbeinsmod loopbackinsmod iso9660terminal_output gfxterminsmod jpegbackground_image /boot/grub2/W0201407.jpgsetmenu_color_normal=white/blacksetmenu_color_highlight=black/light-grayset USBUUID="AAAA-AAAA"menuentry "Tinycore ISO" {    search --no-floppy --fs-uuid --set=root ${USBUUID}    set isofile="/TinyCore-current.iso"    loopback loop $isofile    linux (loop)/boot/vmlinuz loglevel=3 cde waitusb=10 linux repo=hd:/dev/disk/by-uuid/${USBUUID}:/    initrd (loop)/boot/core.gz}menuentry "Slax 7.iso" {    set isofile="/slax-Chinese-Simplified-7.0.8-i486.iso"    loopback loop $isofile    linux (loop)/slax/boot/vmlinuz from=$isofile slax.flags=perch,xmode nopersistent noeject noprompt noatime ro    initrd (loop)/slax/boot/initrfs.img}menuentry "Parted Magic 80M" {    set isofile="/pmagic-4.5.iso"    loopback loop $isofile    linux (loop)/pmagic/bzImage iso_filename=$isofile edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us    initrd (loop)/pmagic/initramfs}menuentry "Fedora 20 Live (64 bit)" {    set isoname="Fedora-Live-Desktop-x86_64-20-1"    set isofile="/${isoname}.iso"    loopback loop $isofile    linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=${isoname} rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile}    initrd (loop)/isolinux/initrd0.img}menuentry "Fedora 21 Live Workstation (64 bit)" {     set isoname="Fedora-Live-Workstation-x86_64-21-5"     set isofile="/${isoname}.iso"     search --no-floppy --fs-uuid --set=root ${USBUUID}     loopback loop $isofile     linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} root=live:CDLABEL=Fedora-Live-WS-x86_64-21-5 rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0     initrd (loop)/isolinux/initrd0.img  }menuentry "Fedora 22 Live Workstation (64 bit)" {    set isoname="Fedora-Live-Workstation-x86_64-22-3"    set isofile="/${isoname}.iso"    search --no-floppy --fs-uuid --set=root ${USBUUID}    loopback loop $isofile    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} root=live:CDLABEL=Fedora-Live-WS-x86_64-22-3 rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0    initrd (loop)/isolinux/initrd0.img}menuentry "Fedora 23 Live Workstation (64 bit)" {    set isoname="Fedora-Live-Workstation-x86_64-23-10"    set isofile="/${isoname}.iso"    search --no-floppy --fs-uuid --set=root ${USBUUID}    loopback loop $isofile    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} root=live:CDLABEL=Fedora-Live-WS-x86_64-23-10 rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0    initrd (loop)/isolinux/initrd0.img}menuentry "Archlinux2014-10-01 install ISO" {    set isofile="/archlinux-2014.10.01-dual.iso"    if cpuid; then set cputype="x86_64"; else set cputype="i686"; fi    loopback loop $isofile    linux (loop)/arch/boot/$cputype/vmlinuz archisolabel=ARCH_201410 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop    initrd (loop)/arch/boot/$cputype/archiso.img}menuentry 'Boot Windows 8 PE ISO'{    search --no-floppy --fs-uuid --set=root ${USBUUID}    linux16 /boot/memdisk iso raw    echo 'Loading WINPE ISO...'    initrd16 /Win8PE.iso}#menuentry "debian-7.6-i386 install" {#        set isofile="/debian-7.6.0-i386-CD-1.iso"#        loopback loop $isofile#        linux /debian-7.6/vmlinuz iso-scan/filename=$isofile noeject nopromt --#        initrd /debian-7.6/initrd.gz#}menuentry '[loopback]debian-live-7.6.0-amd64-xfce-desktop' {    set isofile='/boot/iso/debian-live-7.6.0-amd64-xfce-desktop.iso'    loopback loop $isofile    linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sdb2/$isofile    initrd (loop)/live/initrd.img}menuentry "启动第一存储器主引导记录 " {    set root=(hd0)    chainloader +1}menuentry "启动第二存储器主引导记录 " {    set root=(hd1)    chainloader +1}menuentry "重启"{    reboot}menuentry "关机"{    halt}

注意事项
1

需要U盘启动电脑时,需要设置从U盘引导系统。

2

设置文件中的:set USBUUID="AAAA-AAAA" 请根据情况修改。

3

设置中的:background_image /boot/grub2/W0201407.jpg 为引导时的图片背景。该背景图片大小最好与设置的分辨率相匹配,且文件名不超过8个字符。放在相应的位置。

4

menuentry 'Boot Windows 8 PE ISO'标签中,memdisk 的设置取决于该文件所处的位置。

5

如果需要安装 ghost windows 系统,请拷贝相应的 ghost 文件至U盘里。引导 winPE 系统后通过 ghost 安装系统。但是,此方法并非正常安装系统的方法,可能会导致失败,或导致其它系统需要重新设置引导。

推荐信息