开发者社区> 余二五> 正文

Linux磁盘管理三板斧的使用心得

简介:
+关注继续查看

磁盘是Linux系统中一项非常重要的资源,如何对其进行有效的管理直接关系到整个系统的性能问题。对Linux磁盘管理稍微有一 些学习和经验的朋友们应该都知道df、du和fdisk这三个常用命令:df用于检查文件系统磁盘占用情况,du检查磁盘空间占用情况,而fdisk用于 磁盘分区。这三个工具是本人在进行Linux磁盘管理时常用的工具,下面跟大家分享一些使用心得。

 

1.df

df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。

df命令各个选项的含义如下:

  -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
  -k:以k字节为单位显示。
  -i:显示i节点信息,而不是磁盘块。
  -t:显示各指定类型的文件系统的磁盘空间使用情况。
  -x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
  -T:显示文件系统类型。

我们先看看使用df命令的例子:

//列出各文件系统的磁盘空间使用情况
#df
Filesystem           1k-blocks      Used   Available Use% Mounted on
/dev/hda5               381139     332921     28540  93% /
/dev/hda1                46636      6871     37357  16% /boot
/dev/hda3             10041144   6632528   2898556  70% /home
none                    127372         0    127372   0% /dev/shm
/dev/hda2             27474876  24130460   1948772  93% /usr
/dev/hda6               256667    232729     10686  96% /var

第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。

◆用户也许会感到奇怪,第3,4列块数之和不等于第2列中的块数。这是因为默认的每个分区都留了少量空间供系统管理员使用的缘故。即使遇到普通用户 空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use%列表示普通用户空间使用的百分比,若这一数字达到100%,分区仍然留有系 统管理员使用的空间。

最后,Mounted on列表示文件系统的安装点。

//列出各文件系统的i节点使用情况。
#df -ia
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hda5              98392   23919   74473   25% /
none                       0       0       0    -  /proc
/dev/hda1              12048      38   12010    1% /boot
none                       0       0       0    -  /dev/pts
/dev/hda3            1275456  355008  920448   28% /home
none                   31843       1   31842    1% /dev/shm
/dev/hda2            3489792  133637 3356155    4% /usr
/dev/hda6              66264    9876   56388   15% /var
 
//列出文件系统的类型。
#df -T
Filesystem    Type   1k-blocks      Used Available Use% Mounted on
/dev/hda5     ext3      381139    332921     28540  93% /
/dev/hda1     ext3       46636      6871     37357  16% /boot
/dev/hda3     ext3    10041144   6632528   2898556  70% /home
none         tmpfs      127372         0    127372   0% /dev/shm
/dev/hda2     ext3    27474876  24130460   1948772  93% /usr
/dev/hda6     ext3      256667    232729     10686  96% /var2

 

 

2. du

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。

df命令的各个选项含义如下:

  -s:对每个Names参数只给出占用的数据块总数。
  -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
  -b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
  -k:以1024字节为单位列出磁盘空间使用情况。
  -c:最后再加上一个总计(系统默认设置)。
  -l:计算所有的文件大小,对硬链接文件,则计算多次。
  -x:跳过在不同文件系统上的目录不予统计。

下面举例说明du命令的使用:

//查看/mnt目录占用磁盘空间的情况
#du –abk /mnt
1       /mnt/cdrom
1       /mnt/floppy
3       /mnt
 
//列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间
#du
3684    ./log
84      ./libnids-1.17/doc
720     ./libnids-1.17/src
32      ./libnids-1.17/samples
1064    ./libnids-1.17
4944    .

输出清单中的第1列是以块为单位计的磁盘空间容量,第2列列出目录中使用这些空间的目录名称。

◆这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:

#du –s /mnt 
3       /mnt
 
//列出所有文件和目录所占的空间(使用a选项),并以字节为单位(使用b选项)来计算大小
#du –ab /root/mail
6144    mail/sent-mail
1024    mail/saved-messages
8192    mail

 

3、fdisk

fdisk可以划分磁盘分区。下面给出使用Fdisk命令进行磁盘分区的操作步骤:

#fdisk /dev/had    //使用/dev/had作为默认的分区设备
Command (m for help): m  //选择命令选项
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   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”,可以显示Fdisk命令各个参数的说明。

Fdisk有很多参数,可是经常使用的只有几个。

◆在Linux分区过程,一般是先通过p参数来显示硬盘分区表信息,然后根据信息确定将来的分区。如下所示:

Disk /dev/sda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *        41       522   3871665   83  Linux
/dev/hda2             1        40    321268+  82  Linux swap
 
Partition table entries are not in disk order
Command (m for help):

◆如果想完全改变硬盘的分区格式,就可以通过d参数一个一个地删除存在的硬盘分区。删除完毕,就可以通过n参数来增加新的分区。当按下“n”后,可以看到如下所示:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
   p
   Partiton number(1-4):1
   First cylinder(1-1023):1
   Last cylinder or + size or +sizeK or + sizeM(1-1023):+258M

这里要选择新建的分区类型,是主分区还是扩展分区;并选择p或是e。然后就是设置分区的大小。

◆要提醒注意的是,如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区。

◆在增加分区的时候,其类型都是默认的Linux Native,如果要把其中的某些分区改变为其他类型,例如Linux Swap或FAT32等,可以通过命令t来改变,当按下“t”改变分区类型的时候,系统会提示要改变哪个分区、以及改变为什么类型(如果想知道系统所支持 的分区类型,键入l),如下所示:

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)

改变完了分区类型,就可以按下“w”,保存并退出。如果不想保存,那么可以选择“q”直接退出,如下所示:

Command (m for help):w

通过如上的操作,就可以按照需要成功地划分磁盘分区了。





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

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

相关文章
阿里ESC试用体验
记录阿里云ESC服务器的使用体验-Euclid_Jie
6 0
6. Git 补充内容
提交 ID 显式引用和隐式引用用来指代每一次提交。尽管有时两种引用都不方便,但是幸运的是, Git 提供了许多不同的机制来为提交命名,这些机制有各自的优势,需要根据上下文来选择。
6 0
VIM 简单使用1
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
5 0
JetBrains Mono 字体安装
JetBrains 推出编程字体Mono:更适合程序开发人员 JetBrains 表示:在当今的大部分时间里,我们作为开发人员都在看代码。我们一直在寻找最佳字体,以使我们更容易在屏幕上查看文本。但是,许多流行字体中的逻辑并不总是考虑到通读代码和阅读书本之间的区别。我们的眼睛以非常不同的方式沿代码移动,通常必须垂直移动和水平移动,这与阅读书籍不同,因为它们总是沿同一方向沿文本滑动。
4 0
consul技术分享
上一章《注册中心Eureka》我们介绍了注册中心Eureka,相必大家都对注册中心都有了一定的认识了,在Eureka停止维护之后,Consul就成了其替换方案之一,让我们一起来走进Consul的世界吧!
4 0
云服务器部署后台过程记录
现做毕业设计,使用前后端分离的设计模式,后端完成后为方便后续调用以及维护,将后端打包后部署到ECS云服务器上,在此介绍部署流程及一些问题。
5 0
飞天加速计划·高校学生在家实践--aimafan
为了可以更好地学习关于服务器的相关知识,我申请了阿里云的ECS服务器,在试用了两周之后,收获颇丰。
4 0
Go 语言 第一课
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
4 0
docker 简介和安装
Docker 的应用场景 • Web 应用的自动化打包和发布。 • 自动化测试和持续集成、发布。 • 在服务型环境中部署和调整数据库或其他的后台应用。 • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环
5 0
云起实验室第一期学习
云起实验室第一期学习
4 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载