在硬盘上制作根文件系统.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在硬盘上制作根文件系统
一、实验目标:
在硬盘上建立一个根文件系统,硬盘镜像文件的名称为:hdc-0.11.new.img
二、实验环境:
1、Vmware workation, bochs虚拟机,ultraedit编辑环境
2、用到的四个重要的镜像文件:bootimage-0.11-hd,hdc-0.1.img,并将他们放到
mylinux0.11文件夹中。
3、实验环境:redhat linux
三、实验理论依据:
1、Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括以下一些子目录和文件:
etc/ 目录主要含有一些系统配置文件;
dev/ 含有设备特殊文件,用于使用文件操作语句操作设备;
bin/ 存放系统执行程序。例如sh、mkfs、fdisk等;
usr/ 存放库函数、手册和其它一些文件;
usr/bin 存放用户常用的普通命令;
var/ 用于存放系统运行时可变的数据或者是日志等信息。
存放文件系统的设备就是文件系统设备。Linux 0.11内核所支持的文件系统是MINIX
1.0文件系统。
2、inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬
盘、软盘、U盘... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode 值最快的找到相对应的文件。每一个文件开头都是一个inode。
做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。
四、实验过程:
说明:为了深刻理解每一步操作的含义文中有【】的,里面的内容均是解释性的。
1、在linux系统下使用dd命令创建hdc-0.11.new.img,步骤如下:
[root@localhost home]#mkdir mkhdcimage
[root@localhost home]# cd mkhdcimage
[root@localhost mkhdcimage]# dd if=/dev/zero of=hdc-0.11.new.img bs=512 count=524160 读入了524160+0 个块
输出了524160+0 个块【524160=520*16*63即扇区数,柱面数520,磁头数16,每磁道扇区数63,上面的bs表示每扇区的字节数,所以我们建立的磁盘容量为:512*524160=268369920 bytes,近似为268MB】
[root@localhost mkhdcimage]#
【[root@localhost mkhdcimage]# dd --help
用法:dd [选项]...
复制文件,并根据以下的选项将数据转换和格式化。
bs=字节强迫ibs=<字节> 及obs=<字节>
cbs=字节每次转换指定的<字节>
conv=关键字根据以逗号分隔的关键字表示的方式来转换文件
count=块数目只复制指定<块数目>的输入数据
ibs=字节每次读取指定的<字节>
if=文件读取<文件>内容而非标准输入的数据
obs=字节每次写入指定的<字节>
of=文件将数据写入<文件>而不在标准输出显示
seek=块数目先略过以obs 为单位的指定<块数目>的输出数据
skip=块数目先略过以ibs 为单位的指定<块数目>的输入数据
--help 显示此帮助信息并离开
--version 显示版本信息并离开
<块数目>和<字节>可以加上以下的单位:
xM=M,c=1,w=2,b=512,kB=1000,K=1024,MB=1000000,M=1048576,
GB=1000000000,G=1073741824,还有T、P、E、Z、Y 如此类推。】
2、在redhat linux中将上面创建的hdc-0.11.new.img进行格式化处理,主要是在上面建立一个分区,步骤如下:
[root@localhost root]# cd /home/mkhdcimage
[root@localhost mkhdcimage]# losetup /dev/loop1 hdc-0.11.new.img【使用losetup命令将映像
文件与loop1设备关联,以便对映像文件进行操作】
[root@localhost mkhdcimage]# fdisk /dev/loop1【对映像文件进行操作】
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delet
e a partition【删除一个分区】
l list known partition types【列出已知的分区类型】
m print this menu
n add a new partition【增加一个新的分区】
o create a new empty DOS partition table
p print the partition table【打印分区表】
q quit without saving changes【不保存退出】
s create a new empty Sun disklabel
t change a partition's system id【改变分区系统的id】
u change display/entry units
v verify the partition table
w write table to disk and exit【将表写到硬盘上并退出】
x extra functionality (experts only)【额外功能】
Command (m for help): n【增加一个新的分区】
Command action
e extended
p primary partition (1-4)
p【选p是为了建立原始的分区】
Partition number (1-4): 1
First cylinder (1-32, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-32, default 32): +63M【分区大小】
Command (m for help): t【改变分区系统的id】
Selected partition 1
Hex code (type L to list codes): l
0 Empty 1c Hidden Win95 FA 70 DiskSecure Mult bb Boot Wizard hid
1 FAT1
2 1e Hidden Win95 FA 75 PC/IX be Solaris boot
2 XENIX root 24 NEC DOS 80 Old Minix c1 DRDOS/sec (FAT-
3 XENIX usr 39 Plan 9 81 Minix / old Lin c
4 DRDOS/sec (FAT-
4 FAT16 <32M 3c PartitionMagic 82 Linux swap c6 DRDOS/sec (FAT-
5 Extended 40 Venix 8028
6 83 Linux c
7 Syrinx
6 FAT16 41 PPC PReP Boot 84 OS/2 hidden C: da Non-FS data
7 HPFS/NTFS 42 SFS 85 Linux extended db CP/M / CTOS / .
8 AIX 4d QNX4.x 86 NTFS volume set de Dell Utility
9 AIX bootable 4e QNX4.x 2nd part 87 NTFS volume set df BootIt