Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254641
  • 博文数量: 44
  • 博客积分: 1052
  • 博客等级: 少尉
  • 技术积分: 742
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 16:51
文章分类

全部博文(44)

文章存档

2013年(7)

2012年(14)

2011年(23)

分类: LINUX

2011-11-04 00:04:20

# disk
#
#
# 2011.11.4

1:记录一些与磁盘分区,文件系统相关的命令。如df,fdisk,mount,umount等。

2:df命令
  1. df -a                 # 显示所有文件系统的情况,包括dummy file systems
  2. df -B SIZE            # 使用SIZE-byte块,默认为1-k块
  3. df --total            # 显示总和
  4. df -h                 # 按MB或GB的方式显示
  5. df -H                 # 使用1000而不是1024的换算方式
  6. df -i                 # 显示inode信息
  7. df -l                 # 仅显示本地文件系统

  8. df -t TYPE            # 仅显示TYPE类型的文件系统
  9. df -T                 # 显示文件系统类型
  10. df -x TYPE            # 显示非TYPE类型的文件系统

  11. TYPE:    
  12.         'nfs' -- NFS file system
  13.         'ufs,efs,ext..'
  14.         'hsfs, cdfs' -- file system on CD-ROM drive
  15.         'pcfs' -- MS-DOS file system
  16.         'fuseblk' -- NTFS
  17. SIZE:    
  18.         'KB' -- 1000
  19.         'K' -- 1024
  20.         'MB' -- 1000 * 1000
  21.         'M' -- 1024 * 1024
  22.         'G, T, P, E, Z, Y
3:fdisk命令
  1. fdisk -l                  # 显示系统所有的分区或给定的分区
  2. fdisk -u                  # 显示时,显示的是扇区数不是柱面数
  3. fdisk -s partition        # 显示指定partition的block数
关于fdisk进行磁盘分区的命令,这里并不记录。下面只讲fdisk -l命令的显示结果的意思。
下面是在我的电脑上执行"sudo fdisk -l"命令后的输出。
  1. Disk /dev/sda: 250.1 GB, 250059350016 bytes
  2. 255 heads, 63 sectors/track, 30401 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0xd274d274

  7.  Device   Boot  Start         End           Blocks    Id   System
  8. /dev/sda1 *     1             3201          25712001  7    HPFS/NTFS
  9. /dev/sda2       3202          27596         195952807 f    W95 Ext'd (LBA)
  10. /dev/sda3       27597         30146         20482875  83   Linux
  11. /dev/sda4       30147         30401         2048287+  82   Linux swap / Solaris
  12. /dev/sda5       3202          13199         80308903+ 7    HPFS/NTFS
  13. /dev/sda6       13200         27596         115643871 7    HPFS/NTFS

  14. Disk /dev/sdb: 500.1 GB, 500107861504 bytes
  15. 255 heads, 63 sectors/track, 60801 cylinders
  16. Units = cylinders of 16065 * 512 = 8225280 bytes
  17. Sector size (logical/physical): 512 bytes / 512 bytes
  18. I/O size (minimum/optimal): 512 bytes / 512 bytes
  19. Disk identifier: 0xa4b57300

  20.    Device Boot   Start     End     Blocks       Id     System
  21. /dev/sdb1        1         13054   104856223+   7      HPFS/NTFS
  22. /dev/sdb2        13055     60801   383527777+   f      W95 Ext'd (LBA)
  23. /dev/sdb5        13055     60801   383527746    7      HPFS/NTFS
先看最上面的信息
  1. Disk /dev/sda: 250.1 GB, 250059350016 bytes       硬盘:/dev/sda
  2. 255 heads, 63 sectors/track, 30401 cylinders      该硬盘有255个磁面,每磁道63个扇区,共30401个柱面
  3. Units = cylinders of 16065 * 512 = 8225280 bytes  这是计算每个柱面的大小
  4. Sector size (logical/physical): 512 bytes / 512 bytes
注意,硬盘的大小 = 柱面数 * 每个柱面的大小 = 柱面数 * 磁面数 * 每磁道的扇区数 * 扇区的大小。
因此我这个sda硬盘的大小 = 30401 * 255 * 63 * 512bytes = 250056737280 bytes

从输出信息来看,我这有两块硬盘:/dev/sda和/dev/sdb
下面来看每块硬盘的具体输出信息:
  1. Device      Boot     Start       End       Blocks        Id      System
  2. /dev/sda1   *        1           3201      25712001      7       HPFS/NTFS
  3. /dev/sda2            3202        27596     195952807     f       W95 Ext'd (LBA)
  4. /dev/sda3            27597       30146     20482875      83      Linux
  5. /dev/sda4            30147       30401     2048287+      82      Linux swap / Solaris
  6. /dev/sda5            3202        13199     80308903+     7       HPFS/NTFS
  7. /dev/sda6            13200       27596     115643871     7       HPFS/NTFS
第一列Device表示分区的名称,这里有6个分区。第二列Boot表示在分区是否为启动分区,是则标上*号。
第三列和第四列,start和end标识每个分区的起始柱面号和结尾柱面号。
如分区/dev/sda1,占用的柱面为1 ~ 3201个。其Blocks数 = 3201 * 8225280 / 1024 = 25712032,(有点误差,原因暂时不详,抱歉)
第六列的Id表示文件系统的Id号。
第七列为该分区的文件系统。如sda1为NTFS的。 
注意sda2的分区类型为W95 Ext'd (LBA),这说明该分区为扩展分区。
一块硬盘只能有四个主分区,扩展分区也是主分区,不过扩展分区可以继续分为多个逻辑分区。
这里可以看到四个主分区为:sda1,sda2,sda3,sda4。其中sda2为扩展分区。主分区的号码必须为1,2,3,4.
sda5和sda6为逻辑分区。可以从它们的start和end值看出来。
sda2  : start : 3202     end:27596
sda5  : start : 3202     end:13199
sda6  : start : 13200    end:27596

下面看sdb硬盘的分区。
从上面的信息可以看到, sdb有两个主分区,sdb1和sdb2.其中sdb2为扩展分区。sdb5为sdb2中的逻辑分区。
这里就没有sdb3和sdb4了,因为只有两个主分区。

3:mount命令
  1. mount
  2. mount <-o opt> <-t opt> device dir
  3. mount -a         # 加载/etc/fstab中指定的所有设备
  4. mount -f         # 模拟加载操作,但不实际加载它
  5. mount -L
  6. mount -o auto        # 在/etc/fstab中指定该选项,则自动加载
  7.          defaults    # 默认选项,包括:rw, suid, dev, exec, auto等
  8.          dev/nodev   # 字符或块设备
  9.          exec/noexec # 执行二进制文件
  10.          ro         # 以只读模式加载
  11.          rw         # 以可读写模式加载
  12.          user       # 让一般用户可以加载
  13.          loop       # 可以加载文件
  14. mount -t filesystem # 指定文件系统类型。
  15. filesystem: ext3, vfat, ntfs, iso9660, auto
利用mount命令,我们可以将在fdisk显示的磁盘挂载在某个目录下。
/etc/fstab中指定自动挂载的设备。/etc/mtab中显示当前已挂载的设备

4:mkfs
mkfs用来对某个磁盘分区建立文件系统。
如mkfs -t ext3 /dev/sda1 表示对sda1分区建立ext3文件系统。其他文件系统类型可以用man mkfs查看。
也可以用mkfs来对一个文件建立文件系统,如下命令。
  1. $ dd if=/dev/zero of=tmp.disk bs=1024k count=10   # 建立一个10M的文件tmp.disk
  2. $ mkfs -t ext3 tmp.disk                           # 将该文件格式化为ext3文件系统
  3. $ sudo mount -o loop tmp.disk /mnt/               # 将该文件系统挂载到mnt目录下。
挂载后,就可以把这个10M的文件当作一个磁盘来用了。不过只有10M,可以建立更大的。



ref: 关于fdisk命令主要参考:  
     (很不错的文章,写的比我这清楚和详细)








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