1.lsblk
观察硬盘的分区状态,以树型结构列出系统上所有的磁盘列表
-d:仅列出磁盘本身,并不会列出该磁盘的分区数据
-f:同时列出该磁盘内的文件系统名称
-i:使用ASCII的字符输出,不要使用复杂的编码
-m:同时输出该设备在/dev下面的权限信息(rwx数据)
-p:列出该设备的完整文件名,而不是仅列出最后的名字而已
-t:列出该磁盘设备的详细数据,包括磁盘阵列机制,预读写的数据量大小
2.磁盘分区命令fdisk gdisk
MBR分区表建议使用fdisk分区,GPT分区建议使用gdisk分区
fdisk
该命令主要针对MBR分区表。虽然MBR分区表在未来可能会被淘汰,因为现在得磁盘容量基本都是大于2TB,fdisk命令不支持大于 2TB 的分区,目前还无法完整支持GPT,不过还是有小磁盘存在的空间,这时处理MBR分区表就得使用fdisk
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> :扇区大小(512、1024、2048或4096)
-c[=<模式>] :兼容模式:“dos”或“nondos”(默认)
-u[=<单位>] :显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-C <数字> :指定柱面数
-H <数字> :指定磁头数
-S <数字>:指定每个磁道的扇区数
使用fdisk进行分区:
因为fdisk和gdisk使用的方式几乎一样,只是一个使用问号(?)作为命令提示信息,一个使用字母m显示提示而已。此外,fdisk有时会使用柱面(cylinder)作为分区的最小单位,与gdisk默认使用扇区不太一样
在 fdisk 交互界面中输入 m 可以得到帮助,帮助里列出了 fdisk 可以识别的交互命令
在/dev/sdb磁盘中新增一个2G且文件系统是Linux LVM的主分区
gdisk对大于2TB的硬盘进行分区
新增分区
使用 p 可以列出这块磁盘的分区表信息,输出信息为:
第一行:磁盘容量:3.0T,共有个扇区
第二行:每个扇区的容量为512B(现在的分区主要是以扇区为最小单位)
Number:分区编号,对于当前设备来说,1号指的是/dev/sdc1,2号便指的是/dev/sdc2……
Start(sector):每一个分区的开始扇区号码位置
End (sector):每一个分区的结束扇区号码位置,通过与Start之间可以计算出分区的总容量
Size:分区的容量
Code:分区的文件类型
Name:文件系统的名称
3.parted分区
”parted”,这个工具既可以做MBR分区,又可以做GPT分区,当然还是主要用它来做GPT分区
该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。
选项:
-h:显示此求助信息
-l:列出系统系统中所有的磁盘设备,和fdisk -l命令的作用差不多。
-m:进入交互模式,如果后面不加设备则对第一个磁盘进行操作
-s:脚本模式
-v:显示版本
2、交互模式:parted [option] device 类似于使用 fdisk /dev/xxx
设置默认单位
更改分区名
配置分区的标记
取消标记名
删除分区
对MBR类型进行分区
分区完成后,如果不格式化写入文件系统,则是不能正常使用的。这时就需要对硬盘分区进行格式化
mkfs命令进行格式化
对于MBR分区而言:扩展分区不能格式化,主分区和逻辑分区可以格式化;对于GPT则不存在,因为没有扩展分区而言了
mkfs
查看是否格式化成功
如果将sdb1分区使用mkfs格式化为xfs类型,那么便不能再将sdb1格式化ext系列其它类型;但是,如果sdb1格式化ext系列类型时,可以二次将 sdb1格式化为xfs类型;ext系列之间可以互相格式化
虽然 mkfs 命令非常简单易用,但其不能调整分区的默认参数(比如块大小是 4096 Bytes),这些默认参数除非特殊清况,否则不需要调整。如果想要调整,就需要使用 mke2fs 命令重新格式化
mke2fs
用法: mke2fs [选项] 分区设备文件名
注意:此命令不适用于xfs文件类型
选项:
-t 文件系统:指定格式化成哪个文件系统, 如 ext2、ext3、ext4;
-b 字节:指定 block 的大小;
-i 字节:指定”字节 inode “的比例,也就是多少字节分配一个 inode
-j :建立带有 ext3 日志功能的文件系统
-L 卷标名:给文件系统设置卷标名,就不使用 e2label 命令设定了
ext系列
e2label命令:卷标的查看与设定
查看:e2label device
设定:e2label device LABEL
tune2fs命令:查看或修改ext系列文件系统的某些属性
tune2fs [OPTIONS] device
-l:查看超级块的内容
-j:ext2 –> ext3;
-L LABEL:修改卷标;
-m #:调整预留空间百分比;
resize2fs [选项] device [size]
调整ext2ext3ext4文件系统的大小
选项:
-d debug-flags: 打开resize2fs调试特性
-f:强制执行
-F:执行之前刷新文件系统缓冲区
-M:将文件系统缩小到最小值
-p:显示已完成任务的百分比
-P:显示文件系统的最小值
e2fsck:磁盘修复 检查时先卸载
选项:
-a: 检查 partition,如发现问题会自动修复。
-b: 设定 superblock 位置。 www.2cto.com
-B size: 指定 size 作为区块大小。
-c: 检查 partition 是否有坏轨。
-C file: 将检查结果储存到 file。
-d: 输出 e2fsck debug 结果。
-f: e2fsck 预设只会对错误的文件系统检查,加上 -f 是强制检查。
-F: 在检查前将硬盘的 buffer cache 清空,避免发生错误。
-l list: 记录了坏轨区块加入 list 中。
-d : 打印 e2fsck 的 debug 结果。
-f : 强制检查。
-n: 以 (read-only) 开启档案系统
-p: 关闭互动模式,如有问题自动修复,等同 -a。
-v: 显示详细报告。
-y: 启用使用者互动模式。
fsck:检查与修复文件系统,可以同时检查一个或者多个
fsck [-sACVRP] [-t fstype] [–] [fsck-options] filesys […]
选项:
filesys : device 名称(eghttps://blog.51cto.com/u_/dev/sda1),mount 点 (eg. / 或 /usr)
-t : 给定文件系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 partition 做检查
-C : 显示完整的检查进度
-d : 列印 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
xfs_repair处理XFS文件系统,当有xfs文件系统错乱才需要使用这个命令
提示:由于xfs_repair与fsck.ext4 在扫描磁盘的时候,可能会造成部分文件系统的改变,所以执行xfs_repair与fsck.ext4 时,被检查的硬盘分区务必不可挂载到系统上,亦即是需要在卸载状态
磁盘分区和格式化完成后,磁盘分区要想能够使用,就需要挂载,在挂载某个分区前需要先建立一个挂载点
挂载: 将新的文件系统关联至当前文件系统
卸载: 将某文件系统与当前文件系统的关联关系移除;卸载时设备没有进程在使用
挂载点: 作为要挂载文件系统的访问入口;挂载点事先必须存在;不会被进程使用到的目录;挂载点下原有文件 将会被临时隐藏
tips:我们可以对挂载的含义进行引申,挂载指的是将硬件设备的文件系统和 Linux 系统中的文件系统,通过指定目录(作为挂载点)进行关联。文件系统要想能够被访问,都必须通过“关联”至文件系统上的某个目录来实现,此关联操作即为“挂载”;此目录即为“挂载点”
(一)各硬件设备在Linux中的文件名
设备 在Linux中的文件名
SCSI、SATA、USB磁盘驱动器 /dev/sd/[a-p]
U盘 /dev/sd[a-p] (与SATA相同)
CD-ROM、DVD-ROM /dev/scd[0-1]、/dev/sr[0-1]、/dev/cdroom(当前CD-ROM)
Virto接口 /dev/vd[a-p](用于虚拟机内)
软盘驱动器 /dev/fd[0-7]
IDE磁盘驱动器 /dev/hd[a-d](旧式系统)
磁带机 /dev/ht0(IDE接口)、/dev/st0(SATA/SCSI接口)、/dev/tape(当前磁带)
打印机 /dev/lp[0-2](25针打印机)、/dev/usb/lp[0-15](USB接口)
鼠标 /dev/input/mouse[0-15]、/dev/psaux(PS/2接口)、/dev/mouse(当前鼠标)
挂载
-a:自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
/etc/fstab 文件,此文件是自动挂载文件,系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据该文件的配置,系统会自动挂载指定设备。
-l:单纯的输入mount命令会显示目前挂载的信息,加上-l可增列Label名称
-t:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;常见的Linux支持类型有:xfs、ext3、ext4、vfat、iso9660(光盘格式)、nfs、cifs、smbfs
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性
-o:后面可以接一些挂载时额外加上的参数。比如:权限,密码等
sync/async:同步/异步操作;默认为async
atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
remount:重新挂载;
facl:支持使用facl功能;
ro:只读
rw:读写
dev/nodev:此设备上是否允许创建设备文件;
exec/noexec:是否允许运行此设备上的程序文件;
auto/noauto:是否允许此文件系统被以mount -a 自动挂载
user/nouser:是否允许普通用户挂载此文件系统,一般情况下,mount仅有root可以使用
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:默认值为:rw、suid、dev、exec、auto、nouser、async 、and relatime
-r:readonly,只读挂载;
-w:read and write, 读写挂载;
-L LABEL:挂载时以卷标的方式指明设备;
-U UUID:挂载时以UUID的方式指明设备;
–bind 源目录 目标目录:可以实现将目录绑定至另一个目录上,作为其临时访问入口;
查看已经挂载的设备
可通过lsblk查看文件系统是否挂载
查看data是否有挂载

临时挂载
当退出当前shell,那么就得重新进行手动挂载。如果需要永久挂载(即启动挂载)则需要将挂载命令写入挂载配置文件/etc/fstab文件中
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
(2)挂载限制
根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。
挂载点必须是已经存在的目录。
挂载点的指定可以任意,但必须遵守必要的系统目录架构原则
所有挂载点在同一时间只能被挂载一次
所有分区在同一时间只能挂在一次
若进行卸载,必须将工作目录退出挂载点(及其子目录)之外
fstab中的参数
第一列:Divice 磁盘设备文件或者设备的Lable页或UUID
①使用设备名和label及uuid作为标识的不同
使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了
②可以通过两个命令查看UUID和Lable
第二列:Mount point 设备的挂载点,就是你要挂载到哪个目录下
第三列:filesystem 磁盘文件系统的格式,包括ext2、ext3、xfs、reiserfs、nfs、vfat等
第四列:parameters 文件系统的参数,即mount命令中-o选项后的参数(如果是defaults则包括rw、suid、dev、exec、auto、nouser、async 、and relatime)
第五列:能否被dump备份命令作用 dump是一个用来作为备份的命令。通常这个参数的值为0或者1(0 代表不要做dump备份;1 代表要每天进行dump的操作;2 代表不定日期的进行dump操作)
第六列:是否检验扇区 开机的过程中,系统默认会以fsck检验我们系统是否为完整(0代表不要检验;1代表最早检验(一般根目录会选择使用2);2代表1级别检验完成之后进行检验)
[root@admin var]# umount [-fn] 设备文件名或挂载点
选项与参数:
-f:强制卸载,可用在类似网络文件系统(NFS)无法读取到的情况下
-l:立即卸载文件系统,比-f还强
-n:不更新/etc/mtab情况下卸载
注意:正在被进程访问到的挂载点无法被卸载
查看被哪个或哪些进程所占用:
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
终止所有正在访问某挂载点的进程:
#fuser -km MOUNT_POINT
df命令
用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等同时也可以查看挂载信息
与整个文件系统有关的数据,都保存在 Super block(超级块)中,而 df 命令主要读取的数据几乎都针对的是整个文件系统,所以 df 命令主要是从各文件系统的 Super block 中读取数据。
用法: df [选项] [目录或文件名]
选项:
-a:显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统
-m:以 MB 为单位显示容量
-k:以 KB 为单位显示容量,默认以 KB 为单位
-h:使用人们习惯的 KB、MB 或 GB 等单位自行显示容量
-H:以M=1000K替换M=1024K的进位方式计算
-T:连同该硬盘分区的文件系统名称(例如xfs)也列出
-i:不用硬盘容量显示,而是以含有 inode 的数量来显示
使用”ls -r”命令是可以看到文件的大小的。但是大家会发现,在使用”ls -r”命令査看目录大小时,目录的大小多数是 4KB,这是因为目录下的子目录名和子文件名是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小
我们在统计目录时,不是想看父目录下的子目录名和子文件名到底占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小。
用法:du [选项] [目录或文件名]
选项:
-a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
-s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
-S:不包括子目录下的总计,与-s有差别
-m:以 MB 为单位显示容量
-k:以 KB 为单位显示容量
du命令和df命令的区别
有时我们会发现,使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)
lsof命令
lsof(list open files)是一个列出当前系统打开文件的工具
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议(TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的
用法: lsof [选项] [文件]
选项:
[-a] 文件名:列出打开文件存在的进程
-c<进程名> :列出指定进程所打开的文件
-g [PGID] :列出GID号进程详情
-d<文件号> :列出占用该文件号的进程
+d<目录> :列出目录下被打开的文件
+D<目录> :递归列出目录下被打开的文件
-n<目录> :列出使用NFS的文件;
-i<条件> :列出符合条件的进程(4、6、协议、:端口、 @ip )
-p<进程号> :列出指定进程号所打开的文件;
-u :列出UID号进程详情;
-s <套接字>:列出指定套接字所打开的文件信息
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/172047.html