重走LFS之路:(二) 存储设备准备
(题图来自: techradar.com)
LFS的编译需要单独有一块存储,条件不好的就单独划个分区,条件好的就再挂块硬盘,实在不行就新建个目录来做这件事好了,只不过这样是没法引导起来,只能chroot之后当编译环境用。
我这就以VirtualBox新建一块SATA硬盘,然后接入虚拟机,分区,挂载为例来记录这个过程。
打开VirtualBox,左侧列表中选择我用来做LFS的虚拟机PureDebian-LFS。
单击设置,弹出的对话框中选择存储这一项,从右侧点击”控制器:SATA”,同一行会出现两个小图标,一个是光盘,一个是硬盘。
点击硬盘图标,在弹出的对话框中选择”创建新的虚拟盘(N)”
1-NewDisk
在出现的”创建虚拟硬盘”对话框中,我选择了”VDI(VirtualBox 磁盘映像)”,这是VirtualBox的默认磁盘格式。
2-DiskType
点击下一步,进入”存储在物理硬盘上”这一步,可以选择存储方式,建议选择动态分配,这样的好处就是用到了更大空间才会自动扩展,不会一直占用那么大物理硬盘空间,同时创建时间会大大缩短。
3-MallocDisk
再次单击下一步,进入”文件位置和大小”选项。这里需要选择新增虚拟硬盘的位置,名称和最大容量。
4-DiskPath
新硬盘参数配置完成,点击”创建”按钮,VirtualBox就会按照刚才指定的参数来创建一块新的虚拟硬盘,并自动顺序添加到虚拟机的硬盘列表中。
5-WindowsMount
此时就可以点确定按钮,然后启动虚拟机了。
6-VerifyDiskMount
使用ls -l /dev | grep sd来查看虚拟机所有的硬盘设备,显然sda是有分区的,那么新硬盘应该就是sdb。接下来理所当然应该是新硬盘的分区工作,诚然fdisk无论在开源还是闭源世界都有着无可替代的地位,不过在命令行中我们现在有了更好的硬盘工具来帮助我们分区——cfdisk。
sudo cfdisk /dev/sdb
我们通过参数来指定了cfdisk来操作的设备
7-CfdiskNewDisk
文字图形工具还是比命令行看起来舒服一些,上面很清楚得显示着硬盘信息,比如:我们在操作一块名字叫做/dev/sdb的存储设备,它的容量是21.4GB。
此时我们可以通过方向键来移动光标所覆盖的选项来进行操作,下面我们来新建分区。方便起见,除了/boot分区我会分128M来存放grub,还有1GB的swap分区,其他全部分为一个区,分区上不再区分其他目录。
选择”New”来新建一个分区。
光标默认覆盖[Primary],提示”Create a new primary partition”,直接敲回车创建一个新的主分区。
此时提示Size (in MB),我把数字改成128来表示我要创建的分区大小,单位是MB,此时我们要创建的是一个引导分区,就放一个grub,所以128足够了,所以按下回车进入下一步。
光标默认覆盖[Beginning]提示”Add partition at beginning of free space”,在空闲空间的起始位置来添加一个分区,直接回车进入下一步。
这一步操作比较多,需要激活引导,选择分区类型和写入更改。
光标默认覆盖[ Bootable ],先回车一下,在上方新建的分区这一栏Flags字段会出现Boot字样即可。
按方向键向右移动光标到[ Type ],此时提示”Change the filesystem type (DOS, Linux OS/2 and so on)”,更改文件系统类型。现在新建的分区那一栏FS Type一项默认就是Linux,所以不用更改,等下建立swap交换分区的时候会用到。
继续向右移动光标到Write,提示”Write partition table to disk (this might destroy data)”,向硬盘写入分区表(这可能会破坏数据)。此时我们不着急写入,因为还有别的分区没有划分,等我们都划分完成,再一起写入。
方向键按向下,光标选中”Free Space”,我们来建立交换分区。基本上都是重复刚才的步骤,只不过大小改成1024,不需要置Boot标识。
这里需要选择[ Type ]来改一下类型,选中回车后进入类型选择菜单,编号默认输入就是82,也就是”Linux swap / Solaris”,直接回车即可。此时回到主菜单,可以看到第二个分区sdb2的”FS Type”一项改成了”Linux swap / Solaris”。
按方向键向下,选中Free Space,重复sdb1的创建步骤,类型选择[Logical],大小默认最大即可,不需要更改,创建完成后Name栏会显示sdb5。
8-CfdiskPartitionTable
关于为什么逻辑分区要从5开始排号……
科普一下,Boot Sector也就是硬盘的第一个扇区,它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分组成。
MBR又称为主引导记录,占用Boot Sector的前446个字节(0~0x1BD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序)。
DPT即主分区表占用64个字节(0x1BE~0x1FD),记录磁盘的基本分区信息。主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信息(因此最多可以有四个主分区)。
Boot Record ID即引导区标记占用两个字节(0x1FE~0x1FF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志)
新的硬盘分区表建立完毕,需要写入硬盘了。横移光标覆盖[ Write ],回车,会出现一个问题”Are you sure you want to write the partition table to disk? (yes or no):”,你确定要把分区表写入磁盘咩?需要回答yes或者no,同时下方会出现一个警告”Warning!! This may destroy data on your disk!”,警告!!这可能会损坏你硬盘上的数据!
事实上不是可能,重新写入分区表一定会损失硬盘数据。不过没关系,反正是块空硬盘,敲入yes回车就好了,提示”Wrote partition table to disk”,分区表已经被写入磁盘。至此,分区工作完成,光标默认覆盖[ Bootable ],右移到[ Quit ]回车,退出cfdisk。LFS需要的独立存储设备与分区准备完毕。
原文发布时间:2015-04-03
本文来自云栖合作伙伴“linux中国”