开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

day14:磁盘管理df/du/fdisk/parted命令

简介:
+关注继续查看

4.1:df命令:

总称:report file system disk space usage

1、df:用来查看系统磁盘容量(总容量 已使用及剩余容量、)使用情况:默认是以KB为单位显示:

语法:df  [ 选项 ] 参数

选项如下:

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

-i:查看inode的使用情况:

-k:以KB为单位显示:

-m:以MB为单位显示:

-a:显示系统中在用的所有分区(不常用)

1
2
3
4
5
6
7
8
[root@localhost ~]# df                 #默认df时,以KB为单位显示:
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      17814528 1123440 16691088    7% /
devtmpfs         489980       0   489980    0% /dev
tmpfs            499848       0   499848    0% /dev/shm
tmpfs            499848    6884   492964    2% /run
tmpfs            499848       0   499848    0% /sys/fs/cgroup
/dev/sda1       1038336  121732   916604   12% /boot

:重点关注已用%,当超过80%-90%时要注意了:

上述示例简单说明:

第一列:该文件分区名称:

第二列:该分区的总容量大小:

第三列:该分区的已使用容量:

第四列:该分区的剩余容量:

2、常用选项-h:以合适(更人性化的单位显示)

1
2
3
4
5
6
7
8
[root@localhost ~]# df -h            #显示更直观,更人性化
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        17G  1.1G   16G    7% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.8M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      1014M  119M  896M   12% /boot

3、常用选项还有-i:查看当前系统中inode的使用情况:

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# df -ih       #则是以更人性化的单位来显示inode的使用情况:
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3       8.5M     32K    8.5M       1% /
devtmpfs        120K     381    120K       1% /dev
tmpfs           123K       1    123K       1% /dev/shm
tmpfs           123K     474    122K       1% /run
tmpfs           123K      16    123K       1% /sys/fs/cgroup
/dev/sda1       512K     327    512K       1% /boot
tmpfs           123K       1    123K       1% /run/user/0
tmpfs           123K       1    123K       1% /run/user/1000

4.2:du命令:     默认以4KB的大小单位

1、du:用来查看某个文件或目录所占用空间的大小,默认显示是KB:

语法:du  [ 选项 ]  参数

选项如下:

-a:显示当前目录下所有子文件和目录的大小:

-b:以byte为单位显示:

-k:以KB为单位显示:

-m:以MB为单位显示:

-h:以合适的单位显示:用法和df命令下h相同:

-c:显示各个文件/目录的大小,并列出总和:

-s:只显示总和,一般结合du  -sh 使用:

1
2
3
4
5
6
[root@localhost ~]# du           #默认以KB为单位显示:
16      ./.ssh
0       ./yuanhh/2
0       ./yuanhh/4
0       ./yuanhh
72      .

2、用法:sh:用于查看一个指定文件或目录的大小:

1
2
[root@localhost ~]# du -sh /tmp/     #查看/tmp/目录的大小,并只列出总和:
8.0K    /tmp/

3、用法:分别用du和ls来查看某个文件,发现它俩的数值不一样

1
2
3
4
[root@localhost ~]# du -sh /etc/passwd
4.0K    /etc/passwd
[root@localhost ~]# ls -lh /etc/passwd
-rw-r--r-- 1 root root 964 11月  2 01:27 /etc/passwd

注:du命令显示的4KB(默认情况下不到4KB,也会以4KB显示,以为一个块是4KB).

    ls命令是显示的真实大小964byte。

4.3:磁盘分区fdisk/parted

1、fdisk:用来给系统磁盘来分区(小于2TB):

   ptarted:给大于2TB的硬盘来分区:

语法:fdisk -l 分区名称

选项:fdisk -l后不加分区名称,则列出系统的所有分区表:

      fdisk -l加上分区名称,则只列出此设备分区的分区表:

[root@localhost ~]# fdisk -l /dev/sda  #可以查看sda分区表的一些详细信息:

磁盘 /dev/sda:21.5 GB21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000cb780

   设备 Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     2099199     1048576   83  Linux

/dev/sda2         2099200     6293503     2097152   82  Linux swap / Solaris

/dev/sda3         6293504    41943039    17824768   83  Linux

2、使用fdisk来对磁盘进行分区,首先在虚拟机里添加一块虚拟磁盘,如下:

对添加的磁盘/dev/sdb进行分区,并用p打印当前磁盘的使用情况:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@localhost ~]# fdisk /dev/sdb    #使用fdisk命令来格式化分区:
欢迎使用 fdisk (util-linux 2.23.2)。
Device does not contain a recognized partition table
使用磁盘标识符 0x46fecc49 创建新的 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)
命令(输入 m 获取帮助):n    #此时输入n新建分区
Partition type:        主+逻辑分区=4
   p   primary (0 primary, 0 extended, 4 free)    #主分区
   e   extended                #扩展分区
Select (default p): p      #输入创建主分区
分区号 (1-4,默认 1):1    #默认是分区号1.
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1.5G #可默认也可以手动设置。
分区 1 已设置为 Linux 类型,大小设为 1 GiB

此时我们按照如上步骤分别创建分区2 分区3  分区4:

创建完成后,我们用p命令来查看下:

命令(输入 m 获取帮助):p   #使用p命令来查看

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x41fc3f2d

 设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4196351     1048576   83  Linux

/dev/sdb3         4196352     6293503     1048576   83  Linux

/dev/sdb4         6293504    10485759     2096128   83  Linux

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

If you want to create more than four partitions, you must replace a

primary partition with an extended partition first.

如上:当我们创建四个分区后,再创建时,系提示如果要创建分区,你必须删除一个分区才可以:

3、那我们如何删除一个分区呢:如下:

命令(输入 m 获取帮助):d    #输入d命令则删除。

分区号 (1-4,默认 4):3     #删除第三个分区:

分区 3 已删除

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

设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4196351     1048576   83  Linux

/dev/sdb4         6293504     8390655     1048576   83  Linux

注意:如上列发现,虽然我们删除的分区3,但是分区4不会向上顶替。

4、当需要创建多个磁盘时,则需要创建先创建扩展分区,再创建逻辑分区:如下:

注意:逻辑分区可以N个,没有上限,主要依据容量大小:

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

Partition type:

   p   primary (3 primary, 0 extended, 1 free)

   e   extended

Select (default e): e     #选择扩展分区:

已选择分区 3

起始 扇区 (4196352-10485759,默认为 4196352):

Last 扇区, +扇区 or +size{K,M,G} (4196352-6293503,默认为 6293503):+500M

分区 3 已设置为 Extended 类型,大小设为 500 MiB

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

All primary partitions are in use

添加逻辑分区 5      #添加创建逻辑分区5

Last 扇区, +扇区 or +size{K,M,G} (4198400-5220351,默认为 5220351):+150M

分区 5 已设置为 Linux 类型,大小设为 150 MiB

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

添加逻辑分区 5       #添加创建逻辑分区6

起始 扇区 (4507648-5220351,默认为 4507648):

Last 扇区, +扇区 or +size{K,M,G} (4507648-5220351,默认为 5220351):

分区 6 已设置为 Linux 类型,大小设为 348 MiB

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

All primary partitions are in use

添加逻辑分区 7

No free sectors available

如上例:当磁盘没有容量时,会提示没有空间:

5、此时再使用p查看分区表信息:如下:

命令(输入 m 获取帮助):p       #使用命令来查看: 

 设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4196351     1048576   83  Linux

/dev/sdb3         4196352     5220351      512000    5  Extended

/dev/sdb5         4198400     4812799      307200   83  Linux

/dev/sdb6         4814848     5220351      202752   83  Linux

会发现,创建的逻辑分区是从/dev/sdb5开始的,并不会向向上移动,也就是说,逻辑分区一定是从sdb5开始的。

5、如果删除一个逻辑分区的话,下面的分区会不会向上移动的逻辑分区号呢。如下:

我们删除/dev/sdb5:

命令(输入 m 获取帮助):d    #删除一个分区:

分区号 (1-6,默认 6):5

分区 5 已删除

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

设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4196351     1048576   83  Linux

/dev/sdb3         4196352     5220351      512000    5  Extended

/dev/sdb4         6293504     8390655     1048576   83  Linux

/dev/sdb5         4814848     5220351      202752   83  Linux

总结:如果我们删除了其中一个逻辑分区的话,它的下一个逻辑分区号会顶替它的逻辑分区号,往前面排序:

注意:退出保存的话一个要按W才可以:


11:高级分区工具:parted

parted 用法

parted  /dev/sdb  mklable  #创建分区表:

parted  /dev/sdb  mklable  ext3  0 500000    #创建500G的分区sdb1:

mkfs.ext3 /dev/sdb1     #将分区/dev/sdb1格式化成ext3格式:

创建swap交换分区:

parted   /dev/sdb  mkpart swap  500000   504000   #创建4G的交换分区:

mkswap   /dev/sdb2   #将deb/sdb2创建为交换分区:

swapon   /dev/sdb2   #激活/dev/sdb2这个分区:

如果想让系统挂载这个分区,需手工编辑/etc/fstab文件:

/dev/sdb1      /      ext3     defaults    0  0 

/dev/sdb2     swap    ext3     defaults    0  0 

注意:如果有分区被误删除,可以立即恢复:如下:

parted   /dev/sdb  rm  3      #删除/dev/sdb3

parted   /dev/sdb  rescue   504000   514000   #然后依照显示,输入yes即可:




附记:以下内容来自于百度:

1、磁盘分区注意事项总结:

  • 当我们在创建磁盘分区的时候,有三种分区可选,扩展分区(e),主分区(p),逻辑分区(l)。

  • 我们最多只能创建4个分区(4个中不包括逻辑分区),如果想创建多个分区,可以是3个主分区和1个扩展分区组合。然后在扩展分区中,创建逻辑分区(可以创建无限个逻辑分区)。 
    需要注意的是,扩展分区相当于一个空壳子,是不可以格式化的(不可以使用),只有它的子分区才可以格式化。

  • 在fdisk中划分分区的时候,使用d选项可以删除你想要删除的那个分区,需要注意的是,当扩展分区中有子分区(逻辑分区)的时候,删除扩展分区会连同子分区一起删除,所以当我们在删除分区的时候,一定要谨慎,谨慎,谨慎!!!

    2、扩展学习    parted分区gpt格式  http://www.apelearn.com/bbs/thread-7243-1-1.html

    3、扩展分区parted

  • parted工具常用功能:

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

  • 当在命令行输入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等。










本文转自 芬野 51CTO博客,原文链接:http://blog.51cto.com/yuanhaohao/2055702,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
AS项目一直Indexing paused due to batch updated
AS项目一直Indexing paused due to batch updated
10 0
MySQL创建数据库、数据表 | 零基础自学SQL课程系列Day3
今天是SQL教程的第三课,会教大家创建一个数据库,方便我们后面课程的学习。
24 0
DLA支持Parquet/ORC/OTS表的Alter Table Add Column
蛮多客户提过需求:要给一个表添加列,之前推荐的做法是让客户把表删掉重建,因为DLA是计算存储分离的,删掉的其实只是计算层的元数据,存储层的数据不会动,还是比较轻量级的一个操作。不过这种做法对于一些有特别多分区的表来说代价还是还是挺大的,要删掉所有的分区,而且可能会影响其它正在使用这个表的任务,为了解决用户的这个痛点,我们现在对部分数据源(Parquet/Orc)进行了的Alter Table Add Column的支持。
1537 0
A Tour of Ethereum——区块链与智能合约之旅
# Welcome 以前粗略了解过一些比特币和区块链的理论知识,利用本次休假的时间,趁机熟悉一下Ethereum 和 Solidity,尝试创建一个简单的只能合约。 # What is geth 本文中所有的操作都在 geth 中运行,geth是一个全功能的以太坊节点,它使用golang语言实现。geth 为我们提供了区块信息查看、挖矿、运行智能合约等功能。 *ethereum 和 b
1892 0
PLSQL_批量压缩表Table Compress(案例)
2015-04-01 Created By BaoXinjian 一、摘要 表空间迁移并压缩案例    二、案例 Step1. 并发转移表空间 set timing on; alter session set parallel_degree_limit=192; alter ...
953 0
+关注
20377
文章
0
问答
文章排行榜
最热
最新