Linux磁盘管理

一、磁盘管理

Linux 磁盘管理好坏直接关系到整个系统的性能问题。

Linux 磁盘管理常用的三个命令为 dfdufdisk

  • df(英文全称:disk full):列出文件系统的整体磁盘使用量
  • du(英文全称:disk used):检查磁盘空间使用量
  • fdisk:用于磁盘分区,可以分区2TB以下的磁盘,最多可以分4个分区

除了fdisk可以用于磁盘分区,还可以使用gdisk进行分区:该方式使用规则与fdisk相同,但需要下载才能使用,可以分区2TB以上的磁盘,最多可以分128个分区。

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法格式:

df [-ahikHTm] [目录或文件名]

相关参数 参数说明 -a 列出所有的文件系统,包括系统特有的 /proc 等文件系统 -k 以 KBytes 的容量显示各文件系统 -m 以 MBytes 的容量显示各文件系统 -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 -H 以 M=1000K 取代 M=1024K 的进位方式 -T 显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出 -i 不用硬盘容量,而以 inode 的数量来显示

实例1

列出系统中的所有文件系统:

[En]

List all the file systems in the system:

[root@jiangzhi dev]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  485956       0   485956    0% /dev
tmpfs                     497844       0   497844    0% /dev/shm
tmpfs                     497844    7716   490128    2% /run
tmpfs                     497844       0   497844    0% /sys/fs/cgroup
/dev/mapper/centos-root 49254916 3445324 45809592    7% /
/dev/sda1                1038336  203480   834856   20% /boot
tmpfs                      99572       0    99572    0% /run/user/0

在 Linux 中如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!

实例2

以易于阅读的容量格式显示容量结果:

[En]

Display the capacity results in an easy-to-read capacity format:

[root@jiangzhi dev]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.6M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   47G  3.3G   44G    7% /
/dev/sda1               1014M  199M  816M   20% /boot
tmpfs                     98M     0   98M    0% /run/user/0

实例3

列出系统中的所有特殊文件格式和名称:

[En]

List all special file formats and names in the system:

[root@jiangzhi dev]# df -aT
文件系统                类型          1K-块    已用     可用 已用% 挂载点
sysfs                   sysfs             0       0        0     - /sys
proc                    proc              0       0        0     - /proc
devtmpfs                devtmpfs     485956       0   485956    0% /dev
securityfs              securityfs        0       0        0     - /sys/kernel/security
tmpfs                   tmpfs        497844       0   497844    0% /dev/shm
devpts                  devpts            0       0        0     - /dev/pts
tmpfs                   tmpfs        497844    7684   490160    2% /run
tmpfs                   tmpfs        497844       0   497844    0% /sys/fs/cgroup
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/systemd
pstore                  pstore            0       0        0     - /sys/fs/pstore
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/memory
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/net_cls,net_pr
......后续省略

实例4

将 /etc 下的可用的磁盘容量以易读的容量格式显示

文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   47G  3.3G   44G    7% /

知识拓展:lsblk命令——查看本机的磁盘

Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。

语法格式:

du [-ahskm] 文件或目录名称

相关参数 参数说明 -a 列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已 -h 以人们较易读的容量格式 (G/M) 显示 -s 列出总量而已,而不列出每个各别的目录占用容量 -S 不包括子目录下的总计,与 -s 有点差别 -k 以 KBytes 列出容量显示 -m 以 MBytes 列出容量显示 …

实例1

仅列出当前目录下的所有文件夹容量(包括隐藏文件夹):

[En]

List only all folder capacities under the current directory (including hidden folders):

[root@jiangzhi ~]# du
0       ./jz/juhuachan

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录所占用的硬盘空间。

实例2

将文件的容量也列出来:

[root@jiangzhi jz]# du -a
4       ./1.txt
0       ./index
0       ./index3to2
0       ./juhuachan
0       ./juhuachanruanlianjie
4       .

实例3

查看根目录下各目录占用的容量:

[En]

Check the capacity occupied by each directory under the root directory:

[root@www ~]# du -sm /*
7       /bin
6       /boot
.....中间省略....

0       /proc
.....中间省略....

1       /tmp
3859    /usr

与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

fdisk 是 Linux 的磁盘分区表操作工具。

语法格式:

fdisk [-l] 装置名称

相关参数 参数说明 -l 输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来

实例1

列出所有分区信息:

[root@jiangzhi tmp]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   100663295    49282048   8e  Linux LVM

实例2

在系统中找到根目录所在的磁盘,并查看硬盘上的相关信息:

[En]

Find the disk where the root directory is located in the system, and check the relevant information on the hard disk:

[root@www ~]# df /

输入m后,就会看到底下这些命令介绍:

Command (m for help): m

离开 fdisk 时按下 q,那么所有的动作都不会生效!相反的, 按下 w就是动作生效的意思。

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

想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!

使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。

磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs 命令。

语法格式:

mkfs [-t 文件系统格式] 装置文件名

相关参数 参数说明 -t 可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

实例1

查看mkfs支持的文件格式:

[root@jiangzhi ~]# mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.minix
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs

按下两个[tab],会发现 mkfs 支持的文件格式如上所示。

实例2:

将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:

[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=

上述命令方式也可以写成:mkfs.ext3 /dev/hdc6

fsck(file system check)用来检查和维护不一致的文件系统。

若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

语法格式:

fsck [-t 文件系统] [-ACay] 装置名称

相关参数 参数说明 -t 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数 -A 对/etc/fstab 中所有列出来的 分区(partition)做检查 -C 显示完整的检查进度 -a 如果检查有错则自动修复 -y 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复 …

实例1

查看系统有多少文件系统支持的fsck命令:

[root@jiangzhi ~]# fsck
fsck         fsck.cramfs  fsck.ext3    fsck.minix
fsck.btrfs   fsck.ext2    fsck.ext4    fsck.xfs

实例2

强制检测 /dev/hdc6 分区:

[root@www ~]# fsck -C -f -t ext3 /dev/hdc6
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。

Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。

磁盘挂载语法格式:

mount ...  装置文件名  挂载点

用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6 上面:

[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中间省略.....

/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

磁盘卸载命令 umount 语法:

umount [-fn] 装置文件名或挂载点

相关参数 参数说明 -f 强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下 -n 不升级 /etc/mtab 情况下卸除

卸载 /dev/hdc6:

[root@www ~]# umount /dev/hdc6

二、挂载磁盘步骤总结

1、关机
2、添加硬盘
3、创建分区
    fdisk /dev/sdb
    或
    gdisk /dev/sdb
4、格式化文件系统
    mkfs.xfs /dev/sdb1
5、挂载
    mount /dev/sdb1 /mnt

Original: https://www.cnblogs.com/JZjuechen/p/15720436.html
Author: JZEason
Title: Linux磁盘管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524260/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【MQTT】iniparser库的安装和使用

    iniparser库 * – iniparser库介绍 – 下载库 – iniparser中的API – dictionary中的一…

    Linux 2023年6月13日
    087
  • Spring 进入Controller前参数校验

    在进入Controller前完成参数的校验,针对对象参数 分为两个验证方式 (1)直接使用已定义的校验方式 1、在需要进行校验的属性上增加校验类型注解 import java.ut…

    Linux 2023年6月7日
    0110
  • docker 部署etcd

    原文链接:https://www.zhoubotong.site/post/77.html安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需…

    Linux 2023年6月6日
    096
  • Makefile

    target … : prerequisites … command … … target可以是一个object file(目标文件),也可以是一个执行文件,还可以…

    Linux 2023年6月7日
    085
  • powershell 编写的tui界面脚本《电壳别名宝》

    中文名: 《电壳别名宝》 English name: 《Power Alias》 powershell 编写的tui界面脚本。 用途:保存容易记住的别名(支持中文),保存linux…

    Linux 2023年6月14日
    085
  • Ubuntu安装盘的制作

    准备工作 Ubuntu系统镜像 win32diskimager U盘(4G以上),对重要文件提前备份 制作 下载系统镜像 进入官网 我们下载的版本是18.04,不是20.04 在页…

    Linux 2023年6月14日
    0103
  • 【XML】学习笔记第四章-schema

    Schema 概述 作用 与DTD相比Schema的优势 基础命名空间: 模式 引用方法 通过xsi:noNamespaceSchemaLocation引入 通过xsi:shema…

    Linux 2023年6月14日
    079
  • TCP三次握手与四次挥手

    什么是三次握手? 一般情况下,连接是由客户端向服务端发起的。 第一次,客户端发送一个TCP数据报并将SYN同步位置为1,表示要建立连接,此时客户端会从CLOSED状态变为SYN_S…

    Linux 2023年6月8日
    095
  • 1.2

    数字信号为什么不能远程传播?高频率->传的短 容易被干扰 答案是可以的。 数字信号传输编码的目的:保证数据传送的可靠性 数据传输的关键指标: 延迟和吞吐量 posted @2…

    Linux 2023年6月6日
    083
  • IDEA如何切换到括号外

    一般我们输入完括号后都会习惯性Enter或者Shift + Enter切换到括号外,结果却变成了: public void nothing() Enter → public voi…

    Linux 2023年6月13日
    078
  • SignalR 如何借助redis 实现跨进程通信

    关于redis的订阅和发布功能,这里讲到比较好https://redisbook.readthedocs.io/en/latest/feature/pubsub.html sign…

    Linux 2023年5月28日
    073
  • JuiceFS v1.0 beta3 发布,支持 etcd、Amazon MemoryDB、Redis Cluster

    JuiceFS v1.0 beta3 在元数据引擎方面继续增强,新增 etcd 支持小于 200 万文件的使用场景,相比 Redis 可以提供更好的可用性和安全性。同时支持了 Am…

    Linux 2023年6月14日
    097
  • Spring Security登录的流程

    Spring Security登录的流程 1、UsernamePasswordAuthenticationFilter这过滤器开始 attemptAuthentication方法 …

    Linux 2023年6月7日
    0185
  • Redis 用的很溜,了解过它用的什么协议吗?

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农!文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白…

    Linux 2023年5月28日
    095
  • 读软件测试艺术感悟

    断断续续的看,总觉得好像是漏掉了什么,而且一直 想着还有什么事情未做,却静不下心来去细品 开篇用自测评价测试,举例三角形例子写出等价类边界值的方法给测试人员举一个例子,更好的使测试…

    Linux 2023年6月8日
    089
  • Centos7 找回root密码

    在开机界面,按”e”进入编辑界面 按”e”进图下图界面后,找到开头为”linux16″行,在行后面加入 &#…

    Linux 2023年5月27日
    0130
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球