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)

大家都在看

  • Cisco GNS3教程,GNS3搭建IPv6 6rd环境,Linux 配置 IPv6 6rd详析

    Cisco GNS3 IPv6 6rd实验 1、回顾 前文:https://www.cnblogs.com/kingpop/p/14054321.html在描述Cisco GNS3…

    Linux 2023年6月6日
    096
  • Redis Persistent Replication Sentinel Cluster的一些理解

    Redis Persistent Replication Sentinel Cluster的一些理解 我喜欢把工作中接触到的各种数据库叫做存储系统,笼统地说:Redis、Mysql…

    Linux 2023年5月28日
    076
  • centos8 安装kudu

    1、安装cmake yum install cmake -y 2、安装python yum install python39 -y 设置默认Python版本 alternative…

    Linux 2023年6月8日
    067
  • mycat2 读写分离配置(详解)

    mycat2相对mycat1来说升级还挺多的,但是全网资料太少了,这里尽可能详细的将读写分离说清楚,目前这套配置已经在我司生产环境应用,日UV6W左右,暂时没发现问题。 1.1下载…

    Linux 2023年6月6日
    0104
  • Redis数据类型

    该文章是对Redis官方文档的翻译 字符串(Strings) 字符串是Redis值的最基础的类型。Redis字符串是二进制安全的,这意味着一个Redis字符串可以包含任何种类的数据…

    Linux 2023年5月28日
    087
  • bash获取机器IP后缀

    1.先获取部分数据 ip_0=ip a | grep inet | grep -v inet6 | grep ens | awk ‘NR==1{print $2}’ | cut -…

    Linux 2023年6月7日
    092
  • 如何分析redis中的慢查询

    慢查询只记录命令执行时间,并不包括命令排队和网络传输时间。因此客户端执行命令的时间会大于命令实际执行时间。因为命令执行排队机制,慢查询会导致其他命令级联阻塞,因此当客户端出现请求超…

    Linux 2023年5月28日
    091
  • redis数据库

    这一次主要是接着redis服务器接着进行代码讲解,因为redis服务器中包含大量的数据库,因为redis也对每个数据库设计了结构体 redis数据库 在上面 redisServer…

    Linux 2023年6月13日
    097
  • JPA作持久层操作

    JPA(Hibernate是jpa的实现) jpa是对实体类操作,从而通过封装好的接口直接设置数据库的表结构。虽然jpa可以直接通过编写java代码来操作数据库表结构,避免了sql…

    Linux 2023年6月7日
    0118
  • linux命令__ln

    ln ln是linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目…

    Linux 2023年6月7日
    0104
  • 高速USB转4串口产品设计-RS485串口

    基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口。CH344芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动…

    Linux 2023年6月7日
    0108
  • Redis集群-主从架构

    1.为什么需要集群? 互联网思维一向讲究的是三高,即高并发,高可用,高性能。高并发:系统能够同时并行处理的请求,主要度量指标有响应延时,吞吐量,每秒查询处理,每秒事务处理,并发用户…

    Linux 2023年6月7日
    0119
  • 【C++基础】数据类型

    C++规定在创建一个变量或者产量时,必须要指定相应的数据类型,否则无法给变量分配内存空间 数据类型的存在意义:给变量分配合适的内存空间 整型 作用:整型变量表示的是整数类型的数据 …

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

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

    Linux 2023年5月28日
    0108
  • ret2syscall

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 这一次我们来深入分析下更难的栈溢出题目 ret2syscall 首先还是先…

    Linux 2023年6月13日
    0125
  • aspx.designer.cs没有自动生成代码(没有自动注册)

    遇到这个问题的最大可能是:aspx页面存在bug。 比如说我的主页是从项目里的别的页面复制过来的,但是少复制了一些引用,页面就存在bug,导致aspx.designer.cs没有自…

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