Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd
之前使用虚拟机体验Linux操作系统的使用,一般使用默认的磁盘分区设置,也很少涉及磁盘管理操作,且总有删除重装作为后盾。在安装Ubuntu双系统后,在使用过程中遇到了磁盘分区不合理导致的/boot分区空间不足、磁盘空间需要进行管理等问题,而使用简单粗暴的重装操作则失去了性价比,转而需要通过Linux系统自带的强大的磁盘和文件系统的管理功能来进行实际操作,这里记录平常使用过程中常用的相关的磁盘和文件系统管理所需要的命令和操作。
设备文件命名规则
在Linux系统环境下,设备均被视为文件,一般处于/dev文件夹下,对不同的设备类型,其对应的文件名不相同。
| 设备 | 设备对应的Linux文件名 |
| IDE硬盘 | /dev/hd[ a - d ] |
| SCSI/SATA/USB硬盘 | /dev/sd[ a - p ] |
| 软盘 | /dev/floppy |
其中,IDE硬盘根据其插入的接口不同,分为/dev/hda - /dev/hdd四个名字,而SCSI/SATA硬盘则根据系统检测到的硬盘的顺序分为 /dev/sda - /dev/sdp 等名称。
不同的硬件设备会根据其接入情况拥有不同的文件名,进一步的,同一硬件设备中可能存在多个不同的分区,系统通过在设备文件名之后加入数字后缀来进行区分(在后续表述中,一般认为一个分区对应一个文件系统)。以SCSI硬盘为例,其主分区的命名为 /dev/sda1 - /dev/sda4(注意这四个编号只能被主分区和拓展分区使用),而逻辑分区的命名为 /dev/sda5 - /dev/sda15.
关于设备的命名规则,可以参考文档 Linux allocated devices
文件系统的使用情况查看
可通过Linux命令 df 和 du 来获得当前系统使用情况的信息。
df
报告文件系统对磁盘空间的使用情况
df [Options] filename
.显示包含有参数文件名的文件系统的空间使用情况;
.不指定文件名时,则显示当前挂载的所有文件系统的磁盘使用情况
.直接指定对应的文件系统名显示相应的信息
Options:
-a 显示所有相关的文件系统的信息
-Bx 以 x 指定的单位来表示空间大小,x 可为整数+单位 的格式,如10K\M\G\T等
-h 以易读的方式显示空间,即以1024作为单位
-T 输出文件系统类型
使用 df -Th命令,显示情况如下

du
估计文件系统的使用情况
du [Options] FILE
总结FILE指定的文件集合的空间占用情况,若指定文件集合位目录,则会进行递归计算
-a 显示结果包括文件的空间占用情况,默认值只显示所有目录的空间占用情况
-Bx 以x指定的单元作为单位计算空间占用情况,如-BM,则以1M为单位进行显示
-c 结尾输出总空间占用量
-h 以人类易读的方式输出结果
-s 显示每个参数的总空间占用量
以命令 du -sc -BM ~/*运行的结果如下

磁盘管理
可借助Linux命令完成磁盘分区与格式化,磁盘的挂载等操作。
fdisk
磁盘的分区与管理等功能
fdisk [-i] 设备名称
.-l 选项会将设备名称对应的设备的所有分区信息显示后退出,不指定设备时显示系统能够识别的所有设备
.不使用参数时,则进入fdisk命令的交互界面,可按提示进行操作
注意,fdisk以设备名称作为参数,而不是文件系统名称,故而参数应该为/dev/sd[a - p]和/dev/hd[a - d]的形式。可通过df命令获取对应的设备名称的信息,如某文件系统名为/dev/sda8,则其所在的设备的名称为/dev/sda.
进入fdisk的交互界面后可根据提示完成获取磁盘信息、新增/删除一个分区等操作。对磁盘的操作首先位于内存中,只有通过 w 退出时才会将修改真正执行,相应的使用 q 退出则不会做修改。请确定操作无误后再执行。
通过fdisk输出设备/dev/sda的分区信息如下

其中,start和end分别表示对应特定分区的起始柱面号。
mkfs
完成系统的格式化操作
mkfs -t 格式名 设备文件名
mkfs命令会根据其参数调用实际执行的格式化工具,将文件系统格式化
在键入 mkfs 后按两下[tab]键,可以看到系统支持的格式化的类型。

mount
磁盘的挂载
mount
将磁盘分区与固定的目录建立联系,使得该目录成为进入该分区的入口
-a 将记录在/etc/fstab中而未挂载的磁盘进行挂载
-l 显示目前的挂载信息,只输入命令mount效果一样
-t 指定文件系统类型,包括 ext2/3、vfat、iso9660(光盘格式)、nfs、cifs等
-L "xx" 使用文件系统卷标名而不是文件系统名(如/dev/sda1)进行挂载,好处在于文件系统名可能随接入系统的接口的变化而改变
--bind 将一个目录挂载到另一个目录上,实现的效果类似于符号连接
-o 可接一些挂载时的一些参数
-o loop 直接将当前文件系统上的文件以loop设备进行挂载,如下载的iso镜像文件,不需要先刻录,直接通过 -o loop xx.iso 将其挂载,即可对其进行操作
笔者对于挂载的理解是将一个访问入口与一个对应的文件系统联系起来。Linux系统为系统软件,而文件系统实际存储在硬件设备中,挂载所做的就是将某个目录与文件系统关联(挂载),之后即可通过该目录来访问该文件系统。相应的,对于一个与文件系统A挂载的目录,将其与另一个文件系统B挂载,则其中的内容就变为文件系统B的内容,原文件系统A的内容不会改变,但只有经过挂载后才能再进行访问。一般建议挂载的目录为空目录,单个文件系统不要重复挂载。
事实上,Linux系统的挂载在开机阶段就有发生。在这一阶段,系统根据配置文件/etc/fstab中的设置将系统必需的根目录 / 等进行挂载。该配置文件中包含有文件系统、对应的挂载点、系统类型等信息。而在后续的系统使用过程中,系统的实际挂载情况则被写入/etc/mtab中(也可通过mount的 -n 选项使得挂载情况不被写入该文件)。
可通过 mount /dev/sdax ~/test 进行简单的挂载,系统会自动识别文件系统的类型,故而一般不需要通过 -t 选项指定。
对应的文件系统的卸载可以通过umount命令,其参数可以为文件系统名(/dev/sdax)、挂载点名(~/test)等,均可完成卸载操作。
磁盘二进制内容查看
xxd命令
xxd //可用于显示磁盘原始的二进制数据
-u //十六进制内容以大写内容显示
-g x //结果中每 x Bytes使用空格键隔开
-c n //结果中每行包含n个字节的内容
-l n //结果显示总共n个字节的内容
-s -/+n //+n表示自目标对象开始n字节处开始显示结果
//-n表示自目标对象结束处前n字节处开始显示结果
使用示例:
根据磁盘的第一个扇区应该为MBR(使用GPT格式的磁盘第一个扇区为类MBR结构),使用xxd命令查看其最后66字节:
sudo xxd -g 1 -l 64 -s +446 /dev/sda
命令表示将每个字节内容(两位十六进制数)使用空格隔开,在距文件开始偏移为446的位置开始,显示连续的66字节的内容,从而可以看到图示中原本属于分区表的内容和最后的结束标志0x55aa。
关于硬件设备文件的命名可参考:鸟叔的Linux私房菜-Linux主机规划与磁盘分区
关于Linux磁盘与文件系统管理可参考:鸟叔的Linux私房菜-Linux磁盘与文件系统管理
Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd的更多相关文章
- Linux系统下文件压缩与打包命令
Linux系统下文件压缩与打包命令 常用的压缩文件拓展名 * .Z * .zip * .gz * .bz2 * .xz * .tar * .tar.gz * .tar.bz2 * .tar.xz 压缩 ...
- Linux系统下远程文件拷贝scp命令
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- Linux命令(二十四) 磁盘管理命令(二) mkfs,mount
一.格式化文件系统 mkfs 当完成硬盘分区以后要进行硬盘的格式化,mkfs系列对应的命令用于将硬盘格式化为指定格式的文件系统.mkfs 本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.例 ...
- Linux系统下如何监测磁盘的使用空间
不管是我们在安装软件还是监测软件的使用性能,我们都要随时掌握系统磁盘的使用情况. 使用df命令 df df命令用于显示磁盘分区上的可使用的磁盘空间.默认显示单位为KB.可以利用该命令来获取硬盘被占用了 ...
- windows和linux系统下测试端口连通性的命令
0. ping 1. telnet 2. ssh 3. curl 4. wget 5. tcping 6. 总结 本文地址: https://www.cnblogs.com/hchengmx/p/12 ...
- 浅析Linux系统下用户与权限管理
Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过 ...
- linux系统下常用的打包/解压缩包命令
此处大概列了常用的解压和打包命令,详细信息需要百度一一对比他们的区别,比如我们在下载软件时就是最好的实践. 用zip举例说明,使用命令压缩时有点是,压缩文件.目录会非常快:如图,我压缩了一个progr ...
- linux系统下常用的命令(吐血自己整理,且用且珍惜)
1)linux命令太多,有时候记不起来是哪个,为了方便大家查询,自己吐血整理了以下这些,转载时请标明出处,珍惜原创成果 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜 ...
- Linux系统下常用命令
yum [options] [command] [package ...] options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装 ...
随机推荐
- 【转】合理的布局,绚丽的样式,谈谈Winform程序的界面设计
从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果.一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中矩的标准界面:利用一些换肤的控件或者部分界面组件,能够设计 ...
- HTML页面格式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- final关键字的特点
1.这个关键字是一个修饰符,可以修饰类,方法,变量. 2.被final修饰的类是一个最终类,不可以被继承. 3.被final修饰的方法是一个最终方法,不可以被覆盖. 4.被final修饰的变量是一个常 ...
- SQL修改表结构
--(1)向数据库Student表中添加Name字段 use MR_NXT alter table student add Name char(20) --(2)将Student表中Name的字段的数 ...
- Ubuntu/CentOs 搭建SVN服务器
安装 CentOS : yum install subversion Ubuntu: sudo apt-get install subversion 查看Subversion版本: 使用“svn -- ...
- BZOJ4162:shlw loves matrix II
传送门 利用Cayley-Hamilton定理,用插值法求出特征多项式 \(P(x)\) 然后 \(M^n\equiv M^n(mod~P(x))(mod~P(x))\) 然后就多项式快速幂+取模 最 ...
- LOJ572: Misaka Network 与求和
传送门 假设 \(f^k(i)\) 就是 \(f(i)\) 莫比乌斯反演得到 \[ans=\sum_{i=1}^{N}\lfloor\frac{N}{i}\rfloor^2\sum_{d|i}f(d) ...
- FineReport移动端如何获取地址位置
对于企业大多数员工来说,由于其工作位置是固定的,可以有多种方式进行上班打卡签到以保证该员工有按时正常来上班,但是对于经常需要出差,去客户现场的员工来说,就无法保证他们是否有去上班,所以希望能通过手机位 ...
- Python爬虫教程-07-post介绍(百度翻译)(上)
Python爬虫教程-07-post介绍(百度翻译)(上) 访问网络两种方法 get: 利用参数给服务器传递信息 参数为dict,使用parse编码 post :(今天给大家介绍的post) 一般向服 ...
- OFDM正交频分复用---基础入门图示
@(162 - 信号处理) 整理转载自:给小白图示讲解OFDM 下面以图示为主讲解OFDM,以"易懂"为第一要义. 注:下面的讨论如果不做说明,均假设为理想信道. *** 一张原理 ...