Chinaunix首页 | 论坛 | 博客
  • 博客访问: 875320
  • 博文数量: 366
  • 博客积分: 10267
  • 博客等级: 上将
  • 技术积分: 4290
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:04
文章分类

全部博文(366)

文章存档

2012年(366)

分类: 虚拟化

2012-04-04 17:59:31

本文试图从硬件结构、逻辑结构两方面来介绍Linux中本地磁盘的基本知识。

1. 硬件结构

一块磁盘由多个盘面组成,每个盘面有一个对应的磁头(heads),我们可以在该盘面上存储我们需要的信息。

每一个盘面,被分成多个圆环,我们称之为柱面(cylinders)。每一个柱面又被分割为多个扇形区域,简称扇区(sectors),参见下图:

磁盘扇区(图片来源)

两个红色环形之间是一个柱面;图中黄色标记部分是一个扇区。

2. fdisk -l 查看磁盘情况

#fdisk -l Disk /dev/sda: 73.2 GB, 73274490880 bytes 255 heads, 63 sectors/track, 8908 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 16 128488+ 83 Linux /dev/sda2 17 1928 15358140 83 Linux /dev/sda3 1929 2189 2096482+ 82 Linux swap / Solaris /dev/sda4 2190 8908 53970367+ 5 Extended /dev/sda5 2190 2450 2096451 82 Linux swap / Solaris /dev/sda6 2451 2711 2096451 82 Linux swap / Solaris /dev/sda7 2712 2972 2096451 82 Linux swap / Solaris /dev/sda8 2973 8908 47680888+ 83 Linux

可以看到,上面的磁盘/dev/sda有255个磁头,8908个柱面,每个柱面轨道上有63个扇区。因为每个扇区大小为512bytes,所以总大小约为:8908 * 63 * 512 * 255 = 73270794240(和上面的73274490880 相差3696640,不知道是什么地方多出来的)。

3. 磁盘分区、文件系统、挂载点

我们继续看上面的例子,磁盘/dev/sda共分为8个分区:/dev/sda1,/dev/sda2,......,/dev/sda8,Start和End分别为各个分区的起始和结束柱面。例如分区/dev/sda2从柱面17开始到柱面1928结束,则大小约为(1928-17)* 63 * 512 * 255 = 14.6G。

可以通过df -h来查看分区/dev/sda2的挂载目录:

#df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 13G 1.1G 92% / /dev/sda1 122M 20M 96M 17% /boot tmpfs 2.0G 669M 1.4G 33% /dev/shm /dev/sda8 45G 26G 17G 62% /u01

可以看到,分区/dev/sda2挂载根目录 / 上。然后,通过文件/etc/fstab来查看该分区的文件系统:

#more /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot1 /boot ext3 defaults 1 2 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 LABEL=/u01 /u01 ext3 defaults 1 2 LABEL=SWAP-sda5 swap swap defaults 0 0 LABEL=SWAP-sda6 swap swap defaults 0 0 LABEL=SWAP-sda7 swap swap defaults 0 0 LABEL=SWAP-sda3 swap swap defaults 0 0

看到根目录 / 使用了Linux ext3文件系统。

至此,我们看到磁盘/dev/sda共分为八个分区。其中第二个分区/dev/sda2从柱面17到柱面1928结束,大小约为15G,该分区挂载在根目录 / 上,使用了ext3的文件系统。

4. 其他磁盘分区

在上面的fdisk -l 列表中我们一共可以看到八个磁盘分区。上面已经分析了/dev/sda2,我们再看来看看其他的分区。

  • 在Linux中第一个分区/dev/sda1,为引导扇区,挂载在/boot上
  • 第二个分区挂载在根目录 / 上,大小15G,为ext3文件系统
  • 第三个分区为交换分区,从柱面1929到2189,大小约:(2189 - 1929)* 63 * 512 * 255 = 2G。
  • 第四个分区为扩展分区,后面四个分区均是该分区的一部分。该分区从柱面2190到8908结束。
  • 分区五、六、七为扩展分区的子分区,均为交换分区,单个大小均为2G。所以全部的交换分区大小共2G + 2G*3 = 8G。
  • 第八个分区为扩展分区的最后一个子分区,挂载在/u01上,大小约为 (8908 - 2973)* 63 * 512 * 255 = 45G。

以上为示例主机上的全部磁盘分区,以及挂载情况。

5. 小结

有了以上信息,我们就基本清楚了硬件结构以及对应的逻辑结构,需要使用的命令其实也很少:

#fdisk -l 
#df -h 
#more /etc/fstab

6. 补充

# This file is edited by fstab-sync - see 'man fstab-sync' for details LABEL=/1 / ext3 defaults 1 1 LABEL=/boot1 /boot ext3 defaults 1 2 ......

关于/etc/fstab的简单补充:

  • 第一列是:一般是设备(分区),如也有是LABEL=×××的,这是ext2 ext3特有的卷标,可以通过e2label来查看各个设备的卷标。
  • 第二列是:挂载点
  • 第三列是:文件系统
  • 第四列是:文件系统挂载时候的参数(例如NFS有时候需要用户名密码等)
  • 第五列是:标志是否需要备份1为需要,0为不需要
  • 第六列是:启动时,是否需要fsck检查磁盘1为先检查,2为后检查,0为不检查

在fstab文件还有部分第一列是none的,这些都是不需要物理磁盘的文件系统。典型的如/proc文件系统:

none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0


阅读(1505) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~