磁盘管理 df、du、fdisk、parted

第四章 Linux磁盘管理

4.1 df命令

df命令用于显示已挂载磁盘分区上的可使用的磁盘空间,默认显示单位为KB。

语法: df [选项] [参数]
选项:
-h:使用合适的单位显示
-i:查看inodes使用情况
-k:以KB为单位显示
-m:以MB为单位显示

df命令解析

eg:
默认情况以K为单位显示

[root@adai002 ~]# df
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      29140072 1195120 27944952    5% /
devtmpfs         494380       0   494380    0% /dev
tmpfs            504196       0   504196    0% /dev/shm
tmpfs            504196    6860   497336    2% /run
tmpfs            504196       0   504196    0% /sys/fs/cgroup
/dev/sda1        201380  111468    89912   56% /boot
tmpfs            100840       0   100840    0% /run/user/0

使用-h以合适的单位显示

[root@adai002 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  1.2G   27G    5% /
devtmpfs        483M     0  483M    0% /dev
tmpfs           493M     0  493M    0% /dev/shm
tmpfs           493M  6.7M  486M    2% /run
tmpfs           493M     0  493M    0% /sys/fs/cgroup
/dev/sda1       197M  109M   88M   56% /boot
tmpfs            99M     0   99M    0% /run/user/0

查看inodes使用情况

[root@adai002 ~]# df -i
文件系统          Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/sda3      14577152   32100 14545052       1% /
devtmpfs         123595     377   123218       1% /dev
tmpfs            126049       1   126048       1% /dev/shm
tmpfs            126049     446   125603       1% /run
tmpfs            126049      16   126033       1% /sys/fs/cgroup
/dev/sda1        102400     330   102070       1% /boot
tmpfs            126049       1   126048       1% /run/user/0

4.2 du命令

du命令用来查看某个目录或文件所占空间大小。默认显示单位KB。

语法: du [选项] [参数]
选项:
-a:=all,显示全部文件与目录的大小
-b:以byte为单位显示内容
-k:以KB为单位显示内容
-m:以MB为单位显示内容
-h:系统自动调节单位显示内容
-c:最后加总
-s:只列出总和

4.3-4.4 磁盘分区

fdisk命令

fdisk用来对小于2T的磁盘进行分区,如果大于2T需用parted工具。

语法: fdisk [-l] [设备名称]
用法说明:
加-l表示查看磁盘设备以及分区;不加-l表示对指定设备进行分区。

-l:后面不跟设备名会列出系统中所有的磁盘设备以及分区表,加上设备名会列出设备的分区表。

[root@adai002 ~]# fdisk -l

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00009bac

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    62914559    29154304   83  Linux

对磁盘进行分区

在关机(虚拟机)状态为虚拟机增加一块虚拟磁盘!

[root@adai002 ~]# fdisk -l    启动后查看磁盘状况

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00009bac

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    62914559    29154304   83  Linux

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

开始分区:

[root@adai002 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6f751d98 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag   
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition    
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   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)

常用选项:n、p、b、d


命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    12584959     1048576   83  Linux

可创建4个主分区,如果想创建更多分区需要使用扩展分区,扩展分区+主分区数目最多为4个。

命令(输入 m 获取帮助):n   
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.     
即创建4个主分区后无法再创建新分区!!!

命令(输入 m 获取帮助):d    删除一个主分区!!!
分区号 (1-4,默认 4):4
分区 4 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e    创建一个扩展分区!!!
已选择分区 4
起始 扇区 (10487808-20971519,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519):+4G    
分区 4 已设置为 Extended 类型,大小设为 4 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended

接下来在扩展分区下继续创建分区——逻辑分区(此时不再询问所创建分区的类型)

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (10489856-18876415,默认为 10489856):+1G
值超出范围。
起始 扇区 (10489856-18876415,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-18876415,默认为 18876415):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux

删除分区:删除主分区后主分区号一起被删除,作为预留号留空;删除逻辑分区后,逻辑分区号不会留空

命令(输入 m 获取帮助):d
分区号 (1-6,默认 6):1
分区 1 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux
/dev/sdb6        12589056    14686207     1048576   83  Linux

命令(输入 m 获取帮助):d
分区号 (2-6,默认 6):5
分区 5 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f751d98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        12589056    14686207     1048576   83  Linux   
   注意扇区号的变化!!!

划分完成后输入q直接退出,不保留分区,输入w会保存分区配置!
先创建扩展分区:

[root@adai002 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x210e6716 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x210e6716

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): e
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+3G  
分区 1 已设置为 Extended 类型,大小设为 3 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x210e6716

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728    5  Extended

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)

先创建扩展分区时,再添加分区时,分区类型提示发生变化。
删除扩展分区时会把其下逻辑分区同时删除。
扩展分区不能被格式化!

扩展 parted命令

我们在课上讲的fdisk分区工具,它的分区格式为MBR,特点是,最多分4个主分区,磁盘大小不能超过2T。而GPT分区格式,突破了这些限制,它没有主分区、扩展分区、逻辑分区之分,在一块磁盘上最多可以分128个分区出来,支持大于2T的分区,最大卷可达18EB。 相信,随着存储级别的升级,将来的分区格式逐渐会淘汰MBR,而GPT成为主流。

parted工具常用功能:

当在命令行输入parted后,进入parted命令的交互模式。输入help会显示帮助信息,下面讲一下常用功能:

  • check:简单检查文件系统。建议使用其他命令检查文件系统,如fsck
  • help:显示帮助信息
  • mklabel:创建分区表,即使用msdos(MBR)还是使用gpt,或者是其他方式分区表
  • mkfs:创建文件系统。该命令不支持ext3格式,因此建议不使用,最好使用parted分区完成之后,退出parted交互模式,用其他命令济宁分区,eg:mkfs.ext3
  • mkpart:创建分区
    • 语法:
      mkpart PART-TYPE [FS-TYPE] START END
    • PART-TYPE类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。
    • fs-type 文件系统类型,主要有fs32,NTFS,ext2,ext3等。
    • start end 分区的起始和结束位置。
  • mkpartfs: 建立分区及其文件系统。目前还不支持ext3文件系统,因此不建议使用该功能。最后是分好区后,退出parted,然后用其他命令建立文件系统。
  • print: 输出分区信息。该功能有3个选项:
    • free: 显示该盘的所有信息,并显示磁盘剩余空间
    • number: 显示指定的分区的信息
    • all: 显示所有磁盘信息
  • resize: 调整指定的分区的大小。目前对ext3格式支持不是很好,所以不建议使用该功能。
  • rescue: 恢复不小心删除的分区。如果不小心用parted的rm命令删除了一个分区,那么可以通过rescue功能进行恢复。恢复时需要给出分区的起始和结束的位置。然后parted就会在给定的范围内去寻找,并提示恢复分区。
  • rm:删除分区。命令格式 rm number 。如:rm 3 就是将编号为3的分区删除。
  • select:选择设备。当输入parted命令后直接回车进入交互模式是,如果有多块硬盘,需要用select 选择要操作的硬盘。如:select /dev/sdb。
  • set:设置标记。更改指定分区编号的标志。标志通常有如下几种:boot hidden raid lvm 等。 boot 为引导分区,hidden 为隐藏分区,raid 软raid,lvm 为逻辑分区。eg:set 3 boot on 设置3分区为启动分区。

注: 以上内容为parted常用的功能,由于该工具目前对ext3支持得不是很好,因此有些功能无法应用,比如move(移动分区)和resize等。

parted分区功能事例

1、用命令模式 为/dev/sdb创建gpt类型文件分区表,并分500G分区。然后为该分区创建ext3文件系统。并将该分区挂载在/test文件夹下。
#  parted  /dev/sdb  mklabel     —创建分区表
#  parted  /dev/sdb  mkpart  ext3  0  500000    —创建500G分区/dev/sdb1
# mkfs.ext3  /dev/sdb1      —-将分区/dev/sdb1格式化成ext3格式文件系统
# mount  /dev/sdb1 /test   —将/dev/sdb1 挂载在/test下
如果让系统自动挂载/dev/sdb1 需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb1             /test                ext3    defaults        0 0
2、创建大小为4G的交互分区。由于已经创建了500G的/dev/sdb1 ,因此再创建的分区为/dev/sdb2
# parted /dev/sdb mkpart swap 500000 504000 —创建4G分区/dev/sdb2
# mkswap  /dev/sdb2   —-将/dev/sdb2创建为交换分区
# swapon /dev/sdb2   —-激活/dev/sdb2
如果让系统自动挂载/dev/sdb2这个交换分区,需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb2             swap                swap    defaults        0 0
3、恢复被误删除的分区(也可以参考testdisk命令)。由于parted直接写磁盘,因此一旦不小心删除了某一分区,建议立即用rescue恢复。下面通过事例来理解恢复过程。
# parted /dev/sdb mkpart ext3 504000 514000 —-创建10G分区/dev/sdb3
# mkfs.ext3 /dev/sdb3  —将/dev/sdb3格式化成ext3文件系统。
# parted /dev/sdb rm 3 —-删除/dev/sdb3
# parted /dev/sdb rescue 504000 514000    —依照屏幕提示,输入yes即可恢复被误删除分区

转载于:https://my.oschina.net/adailinux/blog/967821

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值