linux磁盘分区fdisk命令详解

1、什么是分区?
    分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。
2、为什么要有多个分区?

  • 防止数据丢失:如果系统只有一个分区,那么这个分区损坏,用户将会丢失所的有数据。

  • 增加磁盘空间使用效率:可以用不同的区块大小来格式化分区,如果有很多1K的文件,而硬盘分区区块大小为4K,那么每存储一个文件将会浪费3K空间。这时我们需要取这些文件大小的平均值进行区块大小的划分。

  • 数据激增到极限不会引起系统挂起:将用户数据和系统数据分开,可以避免用户数据填满整个硬盘,引起的系挂起。

3、分区工具fdisk用法介绍
   fdisk命令参数介绍
   p、打印分区表。
   n、新建一个新分区。
   d、删除一个分区。
   q、退出不保存。
   w、把分区写进分区表,保存并退出。
实例:
   [root@localhost ~]# fdisk /dev/hdd   
linux磁盘分区fdisk命令详解

   按"p"键打印分区表

linux磁盘分区fdisk命令详解

   这块硬磁尚未分区
   按"n"键新建一个分区。

linux磁盘分区fdisk命令详解

  出现两个菜单e表示扩展分区,p表示主分区
  按"p"键出现提示:"Partition number (1-4): "选择主分区号
  输入"1"表示第一个主分区。

linux磁盘分区fdisk命令详解

   直接按回车表示1柱面开始分区。

linux磁盘分区fdisk命令详解

   提示最后一个柱面或大小。
   输入+5620M 按回车
   表示第一个分区为5G空间。
   按"p"查看一下分区

linux磁盘分区fdisk命令详解

这样一个主分区就分好了。
接下来分第二个主分区,把剩余空间都给第二个主分区。
按"n"
键新增一个分区
按"p"键设为主分区
输入"2"把主分区编号设为2
按两下回车把剩余空间分给第二个主分区。
按"p"键打印分区表

linux磁盘分区fdisk命令详解


按"w"键保存退出。 
读者可根据自己的硬盘大小来划分合适的分区。

4、使用分区
   在使用硬盘之前必须对其分区进行格式化,并挂载。
   [root@localhost ~]#mkfs.ext3 /dev/hdd1
   [root@localhost ~]#mkfs.ext3 /dev/hdd2
   创建挂载目录
   [root@localhost ~]#mkdir /hdd1 /hdd2
   挂载/dev/hdd1 /dev/hdd2
   [root@localhost ~]#mount /dev/hdd1 /hdd1
   [root@localhost ~]#mount /dev/hdd2 /hdd2
   查看
   [root@localhost ~]#df -h
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/hda3             7.5G  2.8G  4.3G  40% /
   /dev/hda1              99M   17M   78M  18% /boot
   tmpfs                  62M     0   62M   0% /dev/shm
   /dev/hdd1             2.5G   68M  2.3G   3% /hdd1
   /dev/hdd2             2.5G   68M  2.3G   3% /hdd2

现在往/hdd1目录写数据就存储到/dev/hdd这块硬盘了

fdisk -l显示信息详解

fdisk -l显示信息详解

[root@www.linuxidc.com ~]# fdisk -l 
Disk /dev/sda: 10.7 GB, 10737418240 bytes 
255 heads, 63 sectors/track, 1305 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk identifier: 0x00044938 
  Device Boot      Start        End      Blocks  Id  System 
/dev/sda1  *          1        638    5120000  83  Linux 
Partition 1 does not end on cylinder boundary. 
/dev/sda2            638        893    2048000  83  Linux 
Partition 2 does not end on cylinder boundary. 
/dev/sda3            893        1020    1024000  82  Linux swap / Solaris 
Partition 3 does not end on cylinder boundary. 
/dev/sda4            1020        1306    2292736    5  Extended 
/dev/sda5            1021        1306    2291712  83  Linux

解析
Disk /dev/sda: 10.7 GB, 10737418240 bytes
块设备名称为/dev/sda,此设备的大小为10.7GB,这个数字不是特别精确,我系统是10GB;10737418240 bytes这是转换成字节后的大小,即:10737418240/1024/1024/1024=10GB (注:bytes=B,表示“字节”,bit=b,表示“位”)
255 heads, 63 sectors/track, 1305 cylinders
255 heads:表示磁头数为255
63 sectors/track:表示每磁道上有63个扇区
1305 cylinders:表示共有1305个柱面,柱面是分区的最小单位
Units = cylinders of 16065 * 512 = 8225280 bytes

16065=255*63 因为每一个磁头都是在同一个柱面的,63表示每个磁道上的扇区数量,这两个数的乘积表示一个柱面上的扇区数量;所以16065*512表示一个柱面的大小是8225280字节
Sector size (logical/physical): 512 bytes / 512 bytes
表示一个扇区的大小是512字节

总结:所以一个磁盘的大小=一个柱面大小*柱面的总数=磁头数量*每个磁道上的扇区数*一个扇区大小*柱面总数

:磁盘大小=8225280*1305=10733990400bytes=9.99GB=255*63*512*1305
上例中显示出我们的磁盘只有1305个柱面,但下边的分区信息中出现了1306个柱面数,不必太在意,linux显示的这些数据不会十分精确。