U盘+GRUB2引导PE或linux镜像
利用U盘制作启动盘,引导WinPE、Linux安装的文章多如牛毛,与他们相比本文的特点有:
1.用且仅用grbu2做引导。不使用grub4dos,不是使用msdos mbr转到活动分区,到ntldr,然后再到grldr,到LDRXPE,启动winpe……
2.使用grub-install命令安装引导。不使用windows下的UltraISO、linux下的dd命令、以及其他第三方软件改写mbr,保证U盘容量、数据和完整性。
3.grub2直接引导各系统。各系统分目录存放,grub2直接引导目录内文件,不使用chailoader,u盘根目录下可无任何文件,不通过任何其他方式间接引导,简洁明快、避免混乱。
U盘内容如下,包括:
arch——Archlinux安装镜像
grub——grub各配置项
WXPE和Programs——WinPE及其各种Windows实用程序
ubuntu.iso——Ubuntu liveCD
一、安装grub2到u盘。
grub2在各大linux版本中均有采用,它的强大这里就不多说了,基本上任何系统都是有可能通过它引导起来的,而且引导界面可定制,彩色菜单,图片显示都不在话下。这里先把grub2安装到U盘上:
U盘不分区,任何格式都可以,因为兼顾windows和linux所以建议采用fat32格式,大小1G以上(这包括除了U系统外平时还能当正常U盘使用的空间)。格不格式化随你,因为数据可以安全保留。
我这里从一个空白的2G kingston U盘开始,先格式化为fat32,查寻一下uuid为:696C-0B1C,卷标为:fairy,备用。
然后安装grub2到U盘,进入你的linux:
Archlinux下运行命令:
——————————————————————————————————————————————
$ sudo grub-install --boot-directory=/run/media/lcc/fairy --no-floppy --target=i386-pc --recheck /dev/sdb
$ sudo cp /usr/share/grub/{unicode.pf2,ascii.pf2} /run/media/lcc/fairy/grub
$ sudo cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /run/media/lcc/fairy/grub/locale/en.mo
$ sudo GRUB_PREFIX="/run/media/lcc/fairy/grub" grub-mkconfig -o /run/media/lcc/fairy/grub/grub.cfg
——————————————————————————————————————————————
注:这里/dev/sdb为U盘对应设备,/run/media/lcc/fairy为U盘的挂载点,请参照修改。也可以不运行中间两条命令,只是增加了一些ascii,en支持。
Ubuntu下运行命令:
——————————————————————————————————————————————
$ sudo grub-install --root-directory=/media/u /dev/sdb
$ sudo update-grub
——————————————————————————————————————————————
注:这里/dev/sdb为U盘对应设备,/media/u为U盘的挂载点,请参照修改。此处未亲自测试,不对指出请指正。
好了,现在grub2已经安装到U盘mbr上了,而且还按照机子上的系统生成了默认的启动菜单/grub/grub.cfg,这时通过U盘启动,可以看到grub2的引导界面,并且可以完美引导电脑硬盘上的系统了。当然这些硬盘系统的引导项我们不需要,可通过修改U盘上的/grub/grub.cfg来删除。
二、grub2引导WinPE
1.U盘上建立WXPE目录,将WinPE文件放置入内:
目前网络上的WinPE到处都是,各种版本其实都差不多,主要需要如下5个文件:
LDRXPE NTCOM PE SETUPLDR.BIN WINPE.IS_
大致过程是:LDRXPE调用NTCOM和SETUPLDR.BIN读取PE找到WINPE.IS_镜像,加载WinPE。
2.修改grub.cfg,加入winpe引导项:
—————————————————————
menuentry 'LDRXPE for WinCE (on /usb/fairy)'{
insmod part_msdos
insmod fat
set root='hd0,msdos1'
search --no-floppy --fs-uuid --set=root 696C-0B1C
ntldr /WXPE/LDRXPE
}
—————————————————————
说明:此处的696C-0B1C为U盘分区uuid,其实这一句也可以不要,因为上面已经set root了,主要为了双保险。
这里的关键是:ntldr /WXPE/LDRXPE,而不是chainloader或者linux,我用后者尝试了一周都不得成功,最后才发现了可以直接用ntldr命令,强大啊!!
三、grub2引导Archlinux镜像
1.解压Archlinux最新安装镜像:archlinux-2012.11.01-dual.iso,复制其中的arch目录到U盘。
EFI isolinux loader这三个目录不需要。
2.精简arch目录:
因为我要用的是32位的,而不用64位的所以删掉64位的相关目录和文件,包括:
删除arch/x86_64目录;
删除arch/boot目录下的:memtest memtest.COPYING syslinux x86_64
修改arch/aitab,注释掉x86_64的两行。
当然你的空间足够大,这些都可以不做。
3.修改grub.cfg,加入arch引导项:
———————————————————————————————
menuentry 'archlinux-2012.11.01-setup (on /usb/fairy)'{
insmod part_msdos
insmod fat
set root='hd0,msdos1'
search --no-floppy --fs-uuid --set=root 696C-0B1C
linux/arch/boot/i686/vmlinuz archisobasedir=arch archisolabel=fairy
initrd/arch/boot/i686/archiso.img
}
———————————————————————————————
说明:同上此处的696C-0B1C为U盘分区uuid,其实这一句也可以不要,因为上面已经set root了,主要为了双保险。
这里的关键是:archisobasedir=arch archisolabel=fairy ,这里的fairy是U盘的卷标,少了这句是不得成功的。
四、grub2引导Ubuntu liveCD
1.复制ubuntu-12.04-desktop-i386.iso到U盘根目录,当然为了根目录干净放到iso或者其他目录也可以,以下做对应修改。
2.修改grub.cfg,加入ubuntu引导项:
——————————————————————————————————————————————
menuentry 'ubuntu-12.04-desktop-i386.iso' {
insmod fat
insmod loopback
insmod iso9660
loopback loop (hd0,1)/ubuntu-12.04-desktop-i386.iso
set root=(loop)
linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-12.04-desktop-i386.iso noprompt noeject locale=zh_CN.UTF-8 --
initrd /casper/initrd.lz
}
——————————————————————————————————————————————
说明:
hd0,1 指得是U盘第一分区,我这里只有一个分区。
iso-scan/filename=/ubuntu-12.04-desktop-i386.iso这里要注意ubuntu前面的“/”,如果找不到文件会出现can't open /dev/sr0错误。
locale=zh_CN.UTF-8 是设置中文环境,很多人引导成功却是英文环境的,加上这条就可以了。
ubuntu的iso镜像顺利引导,进入 ubuntu的live cd桌面,桌面上有 install ubuntu的字样,和光盘启动时的样子一模一样,不过与光盘安装有一点不同,也很重要,就是之前我们挂载了iso设备,现在要卸载它,不然会出现分区表问题。在终端里输入:
1
|
sudo umount -l /isodevice
|
U盘+GRUB2引导PE或linux镜像的更多相关文章
- grub2引导各种ISO系统镜像
1 grub2引导winpe 1下载winpe.iso镜像,放置在U盘的根目录下 2下载syslinux的memdisk,放置在U盘的根目录下 3 set root=(hd0,msdos1) 设置U ...
- 制作支持 BIOS+UEFI 的 U 盘 grub2+bootmgr 引导 + deepin_recovery + deepin_iso + win_pe
网盘下载:https://pan.baidu.com/s/1c2GXPo0 U盘为 FAT32,MBR分区表 1.下载:U盘grub2+bootmgr引导2017.12.6.2.7z 2.解压到 U盘 ...
- Linux内核升级、GRUB2引导故障处理与密码破解
目录 内核升级 GRUB2内核启动设置 GRUB2引导菜单加密 GRUB2引导故障及修复 救援模式管理 Rhel7破解root密码 内核升级 查看当前内核版本: uname -r 查看可升级内核: ...
- 【教程】在UEFI启动方式下,通过GRUB2引导,直接从硬盘ISO文件安装Windows10和Ubuntu双系统
本文为作者原创,允许转载,但必须注明原文地址: https://www.cnblogs.com/byronxie/p/9949789.html 动机 最近在自学MIT6.828 Operating S ...
- 在U盘上安装Damn Small Linux
Damn Small Linux 是一个袖珍Linux发行版,整个系统只有50M左右,所以可以放到U盘中,从而可以在支持U盘启动的电脑上使用Linux,功能与LiveCD相当. 有很多种方法可以将 ...
- 如何在一个 U 盘上安装多个 Linux 发行版
作者: Ambarish Kumar 译者: LCTT geekpi 本教程介绍如何在一个 U 盘上安装多个 Linux 发行版.这样,你可以在单个 U 盘上享受多个现场版live Linux 发行版 ...
- windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;
之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中:我首先通过磁盘精灵 ...
- Win系统下制作U盘CLOVER引导+安装原版Mavericks10.9
啃苹果有一段时间了,之前一直用白苹果,但是白苹果配置有所限制,对于我搞音频的人来讲,显得有点拖沓.所以研究了将近2年的黑苹果,最近心血来潮给大家一个比较傻瓜式的教程,首先强调一点,黑苹果是需要折腾的, ...
- 分享一个用安卓手机就能引导pc安装linux系统办法
1.首先安卓手机下载软件DriveDroid.apk http://pan.baidu.com/s/1qW4pbT6 2.下载linux镜像文件放手机存储卡存储,放到Download/images/以 ...
随机推荐
- hmm三个问题
现在,重点是要了解并解决HMM 的三个问题. 问题1,已知整个模型,我女朋友告诉我,连续三天,她下班后做的事情分别是:散步,购物,收拾.那么,根据模型,计算产生这些行为的概率是多少. 问题2,同样知晓 ...
- sql中charindex的用法
转自:https://www.cnblogs.com/beeone/p/3621743.html CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符串.如果被搜索的字符中包含 ...
- 学习计划 mysql 整数类型后面的数字,是什么意思?
Mysql中定义整数类型的数字,是指定这个字段的长度么? 比如 INT(10) 10代表10个字节么?还是只能存储10为长度的数字内容? 今天本来想学习下字符类型,一下子发现了这个,感觉好有趣. -- ...
- 迷宫问题---poj3984(bfs,输出路径问题)
题目链接 主要就是输出路径问题: pre[x][y]表示到达(x,y)是由点(pre[x][y].x, pre[x][y].y)而来: #include<stdio.h> #includ ...
- MySQL 如何删除有外键约束的表数据
今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况. SET FOREIGN_KEY_CHECKS=0; 删除 ...
- JS DOM节点
html代码: <body onload ="loaded12()"> <form name="form1" action="htt ...
- 001-windows下Elasticsearch安装、Elasticsearch-header安装
一.window安装Elasticsearch安装 elasticsearch的客户端版本必须与服务端版本主版本保持一致. 1.java安装[略] 2.elasticsearch下载 地址:https ...
- 启动rabbitmq,提示ERROR: node with name "rabbit" already running on "localhost"
➜ ~ rabbitmq-server ERROR: node with name "rabbit" already running on "localhost" ...
- django 中的render和render_to_response()和locals()
1. django中的render context在Django里表现为 Context 类,在 django.template 模块里. 它的构造函数带有一个可选的参数: 一个字典映射变量和它们的值 ...
- PAT 1045 Favorite Color Stripe[dp][难]
1045 Favorite Color Stripe (30)(30 分) Eva is trying to make her own color stripe out of a given one. ...