linux's docs

7.1.0: 磁盘管理-知识&状态查看


1、磁盘知识

1.1 磁盘分区个数
主分区和扩展分区总数不超过4个,并且只能有最多一个扩展分区;

因为mbr的分区表只有64字节,16个字节记录一个分区信息,所以最多记录4个;
扩展分区下可以创建多个分区

1.2 磁盘命名规则
sata硬盘的设备名称从sda开始,依次是sda,sdb,sdc,sdd...;
ide硬盘的设备名称从hda开始,依次为hda,hdb,hdc,hdd...;
同一块硬盘上的分区编号是由"设备名称"+"数字(从1开始)"组成;
例如sda1、sda2。。。或hda1、hdb1

PS:目前linux已经统一标识为sd开头,需要注意下面示例中磁盘命名被顶掉的问题

# 查看目前vmware虚机的磁盘情况
fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000466e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1428     1024000   82  Linux swap / Solaris
/dev/sda4            1428        2611     9501696    5  Extended
/dev/sda5            1429        2611     9500672   83  Linux

# 关闭虚机,添加IDE格式硬盘

# 开机查看目前磁盘状态
fdisk -l

Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 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: 0x00000000


Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000466e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2              26        1301    10240000   83  Linux
/dev/sdb3            1301        1428     1024000   82  Linux swap / Solaris
/dev/sdb4            1428        2611     9501696    5  Extended
/dev/sdb5            1429        2611     9500672   83  Linux

# 默认IDE磁盘排序优于SCSI,所以顶掉了SCSI,命名为sda,SCSI自动成为sdb
# IDE磁盘目前也被统一识别为sd开头的命名
# 所以IDE硬盘和SCSI\SATA硬盘混用的时候一定要注意,IDE会默认排在最前面
# 如果原来你的SATA硬盘是最前面sda,IDE会挤掉它为sda,而原来的sata会变为sdb

1.3 磁盘格式

  • ext2-4:
    linux以前及目前主流的分区格式,随着版本的增加,功能和性能不断提升
  • xfs:
    为了应对现在的虚拟化,和更好的性能
    兼容所有ext4的功能
    支持更大的磁盘
    rhel7及centos7默认的磁盘格式

2、磁盘情况查看工具

2.1 命令df
作用:显示已挂载的分区空间使用情况
语法:df [参数] [文件(此文件所在分区的空间使用情况)]
参数:

  • -h "human-readable"用人类易读方式列出,例如"1K"、"234M"和"2G"
  • -m 以M为单位列出结果
  • -k 以K为单位列出结果
  • -T "type"额外列出已挂载分区格式
  • -i "inode"将查看分区空间改为查看分区inode使用情况

用法举例:

## 查看某文件所在分区的分区使用情况
# df -h /root/.cshrc
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       9.5G  1.2G  7.9G  13% /

## 查看系统所有分区的分区使用情况
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       9.5G  1.2G  7.9G  13% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   29M  151M  16% /boot
/dev/sda5       8.8G   21M  8.4G   1% /data
## /dev/shm是内存中的分区

## 查看系统分区的inode使用情况
# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda2        626K   39K  588K    7% /
tmpfs            123K     1  123K    1% /dev/shm
/dev/sda1         50K    38   50K    1% /boot
/dev/sda5        581K    11  581K    1% /data

2.2 命令du
作用:估算目录或文件占用空间(并非文件体积大小)
语法:du [参数] [文件]
参数:

  • -s "summarize"查看目标目录下文件占用空间总和
  • -S "separate"
  • -h "human-readable"使用人类易读方式显示容量,例如nK、nM等
  • -a "all"估算时包含隐藏文件和普通文件
  • -m 以M作为单位显示空间大小

PS: du查看的是文件占用空间大小,而ls是查看文件的实际大小。 du默认查看的是文件夹,只有目标文件为文件或者加上-a参数时才会显示普通文件的占用空间大小。

用法举例:

# "-a"参数用法举例
# 无"-a"参数时只显示目录占用空间
du -h .
8.0K    ./d
8.0K    ./c
28K     .
# 此目录一共占用24K,而上面两个容量加起来才12K,是因为还有普通文件没统计进来
# 之所以都是4.0K的整数倍,是因为磁盘最小的一块就是4K啊

# 加上"-a"参数后,显示所有文件占用空间
du -ah .
4.0K    ./d/e.txt
8.0K    ./d
4.0K    ./b.txt
4.0K    ./c/f.txt
8.0K    ./c
4.0K    ./a.txt
28K     .
# 此目录占用28K,而上面所有文件占用空间加起来是32K?
# 因为此目录下面的子目录d和c的占用空间已经包含了其本身下面的文件占用的空间数,所以上面计算相当于重复计算了d和c目录下面的文件,所以才会出现这样情况
# 若不计算此目录子目录下的文件,也就是不计算e.txt和f.txt的占用空间,计算出来的占用量是24K,差距的4K是因为此目录本身也需要占用去4K的磁盘空间

# 最实用和常用的使用方法,参数"-s"
# 需要知道此目录总共占用空间
du -sh .
28K     .

# 需要知道此目录下第一层级目录和普通文件各自占用空间
du -sh ./*
4.0K    ./a.txt
4.0K    ./b.txt
8.0K    ./c
8.0K    ./d

# 这样的好处是汇总了目录的容量,不再重复显示目录下文件的单独占用空间,符合大多数情况下我们的使用需求

2.3 命令blkid
作用:输出存储设备的属性信息
语法:blkid [参数] [设备]
用法举例:

blkid
/dev/sda1: UUID="619a84a7-7fb2-4ad0-9d8d-5860d14610a1" TYPE="ext4"
/dev/sda2: UUID="f354fcc9-2144-4b51-b55b-0727570e2450" TYPE="ext4"
/dev/sda3: UUID="2022d4bf-6e4a-4e94-a67b-112389296afa" TYPE="swap"
/dev/sda5: UUID="864ecee1-bb51-42f8-bb77-4ec3f86e09b0" TYPE="ext4"
/dev/sdb1: UUID="4b9301b7-c2d8-4ee1-925a-58c7987bf72b" TYPE="ext4"
/dev/sdb2: UUID="230151ac-6f82-428e-9594-3c13f69f08b8" TYPE="ext4"
/dev/sdb3: UUID="91560800-aa5d-42a2-a3d4-b2aafc09ff78" TYPE="xfs"

blkid /dev/sdb3
/dev/sdb3: UUID="91560800-aa5d-42a2-a3d4-b2aafc09ff78" TYPE="xfs"

3、非专用磁盘状态查看工具的状态查看功能

3.1 mount 查看分区格式及挂载点

mount |grep sda
/dev/sda2 on / type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /data type ext4 (rw)

3.2 fdisk查看磁盘总容量及分区详情

# 查看所有系统磁盘及分区,查看单独一块磁盘时,只需在最后添加设备名称即可
fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000466e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1428     1024000   82  Linux swap / Solaris
/dev/sda4            1428        2611     9501696    5  Extended
/dev/sda5            1429        2611     9500672   83  Linux

3.3 parted查看磁盘详细信息

# 查看所有磁盘信息,会列出分区格式
parted -l
Model: ATA CentOS6-0 SSD (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  211MB   210MB   primary  ext4            boot
 2      211MB   8982MB  8771MB  primary  linux-swap(v1)
 3      8982MB  10.7GB  1754MB  primary  ext4


Model: ATA CentOS6-1 SSD (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags

# 查看单独一块磁盘信息,会列出分区格式
parted /dev/sda print
Model: ATA CentOS6-0 SSD (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  211MB   210MB   primary  ext4            boot
 2      211MB   8982MB  8771MB  primary  linux-swap(v1)
 3      8982MB  10.7GB  1754MB  primary  ext4

Contents