Linux硬盘分区知识简介
- 2024-09-02 05:10:13
- 来源:本站整理
- 在手机上看
扫一扫立即进入手机端
linux系统可以挂载多个不同接口类型的磁盘(disk),每一个磁盘又可以分成若干个分区(Partition),每个分区又可以拥有自己的文件系统类型(FileSystem)。Linux对于磁盘和分区又自己的一套标记方法。
硬盘和分区的区分
第一个SCSI(Small Computer System Interface)磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb;第一个SATA磁盘记为/dev/hda,第二个为/dev/hdb,以此类推。Linux系统中,每一个磁盘的各个分区编号是从1开始的,例如,第一个SCSI磁盘的第一个分区为/dev/sda1,第二分区为/dev/sda2。
分区结构
一块没有分过区的硬盘(RAW)就像一块荒蛮的土地,是没有有意义数据的。分好区的硬盘就会具有一定的结构性。分区就是将硬盘分为一定的区域,便于使用。 一块硬盘最多可以分四个区(主分区)。无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录MBR)。
主引导记录由三部分组成:开始是446B的操作系统引导代码,紧接着是64byte的主分区表。主分区表最多记录四个主分区的分区信息,主要包括该分区的起始/结束柱面、大小、类型等信息。每个分区记录占用16B。分区就是修改分区表,它不影响硬盘上的存储的数据。最后是2字节的结束标志0×55AA(01010101 10101010)。
扩展技术:由于分区表只能包含最多4个分区记录,如果需要将一块硬盘分成超过5个以上的分区,就需要将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。理论上逻辑分区没有个数的限制。扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。逻辑分区的起始位置的信息都写在扩展分区表里面。逻辑分区的分区编号从5开始,如:/dev/sda5是第一块硬盘的第一个逻辑分区。
格式化
其实,格式化就是为某个分区建立起某种类型的文件系统。没有文件系统的分区是不能被操作系统使用,也就无法写入有意义的数据的。文件系统的存在,就是为了让操作系统在一块硬盘的分区内有组织、有纪律的写入和保存数据,当然还得原样地读出数据。
为一个分区建立文件系统的时候,该分区原有的数据就会被抹杀,想要恢复数据就很难了。尤其,当格式化过的分区被重新写入过数据时,恢复先前的数据就变得不可能了。
分区工具的使用
Linux环境下,主要有两个着名的分区管理工具fdisk和parted,本人经常使用的是fdisk。至于parted,可能更灵活,且支持非交互模式,你可以查看相应的man。下面简单介绍下fdisk,详细介绍还请您亲自man之。
fdisk使用范例
列出各磁盘的结构及分区表信息:
ivan@ivan-desktop:~$ sudo fdisk -l
[sudo] password for ivan:
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003ce53
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3825 30720000 7 HPFS/NTFS
/dev/sda2 3825 7650 30720000 7 HPFS/NTFS
/dev/sda3 7650 11474 30720000 7 HPFS/NTFS
/dev/sda4 11475 19457 64123447+ 5 Extended
/dev/sda5 11475 14444 23856472+ 7 HPFS/NTFS
/dev/sda6 19247 19457 1694826 82 Linux swap / Solaris
/dev/sda7 14445 15660 9767488+ 83 Linux
/dev/sda8 15661 19246 28804513+ 83 Linux
Partition table entries are not in disk order
Disk /dev/sdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x3571e2ec
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 9729 78148161 7 HPFS/NTFS
ivan@ivan-desktop:~$
#p#副标题#e#
分区示例:
ivan@ivan-desktop:~$ sudo fdisk /dev/sda
The number of cylinders for this disk is set to 19457.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): m #帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete 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
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): d #删除分区
Partition number (1-8): 2
Command (m for help): p # 打印分区表
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003ce53
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3825 30720000 7 HPFS/NTFS
/dev/sda3 7650 11474 30720000 7 HPFS/NTFS
/dev/sda4 11475 19457 64123447+ 5 Extended
/dev/sda5 11475 14444 23856472+ 7 HPFS/NTFS
/dev/sda6 19247 19457 1694826 82 Linux swap / Solaris
/dev/sda7&nbs