U盘中打造属于自己的Linux (一)U盘的前期处理(下):格式化与初级BootLoader设置
作者: 西玛哒 分类: IT悟语, Linux, 老西常谈 标签: Linux 评论: 1
##
接上篇: 处理U盘至usb-hdd模式;
接下来,我们要做的就是进行U盘的格式化操作,
首先,我们要选择一个BootLoader,你可能会问,为啥格式化需要先考虑BootLoader呢?这要跟BL的挑剔性说起。
我们知道,BootLoader一般安装在MBR中,用于引导,这就决定了它必须正确识别文件系统,这样才能读取存在硬盘上的配置文件
先简介一下几个比较著名的BootLoader
:LILO 比较老的BL,支持大部分文件系统。
:SysLinux 一般用于嵌入式,安装的硬盘文件系统一般为FAT
:Grub 主流的BL,支持大部分文件系统。
我们的很多工具盘的引导用的都是Grub,因为她十分的强大,因此我们打算采用它作为我们的BL。
这里对于Syslinux一笔带过,它是嵌入式中常用的一个引导程序,使用也比较方便。后文中将会对比的提出使用方法。
之后就是常见的文件系统:
:FAT家族 我们见得多了,没吃过猪肉也见过猪跑,我就不介绍了,特性和其主子Windows一样……..
FAT在嵌入式中常用,SysLinux就安装在FAT环境下。
:Linux文件系统格式
ext2 曾经辉煌的GNU默认文件系统,性能较好,缺点:掉电崩溃,数据经常丢失。
ext3 现行正在主流的文件系统,解决了掉电丢失问题。
回想我们的需求,我们希望将系统从内存中交换引导,因此我们使用ext2文件系统就可以满足我们的需要,当然是用ext3是很好的,ext2与ext3兼容性较好,可以方便的相互转换。
## 总结之前的内容,我们决定在ext2环境下使用Grub作为引导程序。
实现:
一、 格式化
进入宿主Linux 打开terminal(之后的工作默认都是在terminal中完成的,图形化的东西没啥用其实。。。)
##
在这里说明一下 之后的操作默认在root权限下进行
$ sudo su
输入你的password:……. // 这个地方没有回显
# //说明进入root权限了
使用的命令(软件)有些提示没有安装,需要执行
apt-get install (程序名) //从程序管理器中自动下载安装
##
采用cfdisk作为分区工具。
插入U盘,Linux一般会识别并自动挂载,在分区格式化之前,要先将U盘解除挂载
#fdisk -l //列出所有的磁盘信息
这时候如果你的硬盘是IDE的盘,那么一般你宿主机的硬盘会识别为
/dev/hdax (x=1,2,……..)
这里说下磁盘在dev下的命名,h表明为IDE,s为sata,d表示disk 后面的为硬盘编号,a表示第一块,依次类推。
我的宿主机硬盘为SATA的,所以识别为/dev/sda(x)
因此 U盘被当成了SATA盘,接在后面被识别为 /dev/sdb(x)
# df -l //查询挂载情况
看看你的U盘被挂在在何处 这里以/media/disk为例
# umount /media/disk
or # umount /dev/sdb(x) 作用相同,挂载的盘x要全部卸载
#cfdisk /dev/sdb 注意 是给硬盘分区。
若是之前这个盘为FAT或其他格式使用过,它可能会报出什么分区表&*(……%**&…… 云云,这是我们可以先吧分区表清空。
#fdisk /dev/sdb
d 选择1-4删除原有的所有分区
w 写分区表
q 退出
之后就可以正常进入分区了。
(不可以的话,额… 查查你U盘自身的问题吧)
之后的有“图形界面” 操作比较方便应该。
分区随便,需要的是一个起于beginning的分区,有bootflag(可启动),大小有你最后要实现的Linux规模决定,这里建议大家分一个区,不差钱儿…….
如上所示,我慷慨的贡献了2G的U盘给它,type可以选择Linux (代号 83) 记住一定要执行 Write 选项,否则就白做了!
#mkfs.ext2 /dev/sdb1 格式化为ext2格式
(对于syslinux格式化,基本相同,上面在type中选择FAT后 执行 mkdosfs /dev/sdb1 就可以了)
至此,格式化过程就全部完成了。
现在我们的U盘空的如同连上四节大课之后的胃一样…
二、 BootLoader的安装与初级设置
我们先找宿主机分析一下,一个BootLoader一般需要什么东西。BootLoader在什么地方找呢?猜对了,/boot
我在我的Linux中 /boot 下有一个名为 grub 的文件夹 起作用十分的明显,就是说,grub引导需要/boot/grub 中的文件。
其实其中起作用的文件只有那么几个,之前的分析我们知道,grub 引导服从 stage1->stage1.5->stage2 这个过程,同时还需要遵照配置文件grub.conf 中的规则,因此我们需要的文件就是:
stage1; stage2; e2fs_stage1_5(就是支持ext2的stage1.5文件,有人说没用)
+ 这几个文件一般人搞不定,因为它们涉及很多底层操作,我这个菜鸟必然不敢动,直接拷贝的干活…..
grub.conf
+ 引导配置,可以自行设置,是我们实现引导的基础。
当然 我们尝鲜要紧 里面的东西先放放再说。
现在我们要正式对U盘下手了….. 首先建立一个今后一直要用的挂载点,自己方便就好,我的是/mnt/usb
#mkdir /mnt/usb
# mount /dev/sdb1 /mnt/usb
# cd /mnt/usb //进入u盘目录
这时候你ls下 可能只有lost+found孤零零的躺在那里
(若发现一堆东西,请迅速离开,不知道咋离开的点右上角的X…)
# mkdir boot
# mkdir boot/grub
# cp -dpR /boot/grub/{stage1,stage2,e2fs_stage1_5} boot/grub //复制必要文件
# touch boot/grub/grub.conf //先弄一个空文件
这样 必要的文件就准备好了 下一步是安装grub
宿主linux中,一般都会安有grub 的shell环境。
# grub
grub > root (hd1,0)
//———–
这里的(hd1,0) 不同于之前的磁盘表示,是设备号
在设备划分中,没什么IDE啊SATA的,都是磁盘hard disk
磁盘计数和数组类似 从0开始
那么hd1 表示 第二块磁盘 0 表示该磁盘的第一个分区
root 就是置为操作对象之意……
//————-
grub > setup (hd1,0)
……………………(没用)
Succeed ! Done! / Failed!
看看你是否安装成功….
grub > quit 退出。
如果上面的succeed了 那么你的BootLoader已经安装完毕了,虽然现在没有任何配置,不可能正常引导,但是启动后应该可以找到grub程序了。
//———————应达到效果—————————-
插入u盘 开机,进入bios设置,选择从usb-hdd启动。
进入 出现grub的引导提示信息。
………
##
补充: vmware 中实现u盘引导的方法:
vmware的启动非常快,来不及加载u盘,依次我们绕过,将u盘模拟为虚拟硬盘使用。
随便新建一个虚拟机,删除原有的硬盘,在配置中点击ADD添加设备,选择硬盘,并“使用物理磁盘”之后选择PD1 就应该是你的u盘了,之后就可以用这个虚拟机验证启动。
##
| anyShare分享到: | |
| |
05-27
2009





