Linux根目录扩容

一.查看文件系统磁盘空间使用情况(df命令)

  1. df 没有参数的情况下,都以 Kbytes 的容量来列出来
[root@localhost ~]# df
文件系统                      1K-块     已用     可用 已用% 挂载点
devtmpfs                   16158616        0 16158616    0% /dev
tmpfs                      16175660      592 16175068    1% /dev/shm
tmpfs                       6470264   576116  5894148    9% /run
tmpfs                          4096        0     4096    0% /sys/fs/cgroup
/dev/mapper/openeuler-root 71670904 13947472 54037032   21% /
tmpfs                      16175660      836 16174824    1% /tmp
/dev/sda1                    996780    88744   839224   10% /boot
/dev/mapper/openeuler-home 72823856     1228 69077656    1% /home

  1. df -h 将容量以简单的形式呈现
[root@localhost ~]# df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                     16G     0   16G    0% /dev
tmpfs                        16G  592K   16G    1% /dev/shm
tmpfs                       6.2G  563M  5.7G    9% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root   69G   14G   52G   21% /
tmpfs                        16G  836K   16G    1% /tmp
/dev/sda1                   974M   87M  820M   10% /boot
/dev/mapper/openeuler-home   70G  1.2M   66G    1% /home
  1. df -aT 将系统内的所有特殊文件格式及名称都列出来。这里可以看到系统里还是有很多的特殊文件在运行,几乎都存在于内存中,不会占据硬盘空间。最有代表性的例子就是挂载点为/proc的文件。
[root@localhost ~]# df -aT
文件系统                   类型           1K-块     已用     可用 已用% 挂载点
proc                       proc               0        0        0     - /proc
sysfs                      sysfs              0        0        0     - /sys
devtmpfs                   devtmpfs    16158616        0 16158616    0% /dev
securityfs                 securityfs         0        0        0     - /sys/kernel/security
tmpfs                      tmpfs       16175660      592 16175068    1% /dev/shm
devpts                     devpts             0        0        0     - /dev/pts
tmpfs                      tmpfs        6470264   576116  5894148    9% /run
tmpfs                      tmpfs           4096        0     4096    0% /sys/fs/cgroup
cgroup                     cgroup             0        0        0     - /sys/fs/cgroup/systemd
pstore                     pstore             0        0        0     - /sys/fs/pstore
none                       bpf                0        0        0     - /sys/fs/bpf
/sys/fs/cgroup/rdma
cgroup                     cgroup             0        0        0     - /sys/fs/cgroup/files
/dev/mapper/openeuler-root ext4        71670904 13947600 54036904   21% /
selinuxfs                  selinuxfs          0        0        0     - /sys/fs/selinux
systemd-1                  -                  -        -        -     - /proc/sys/fs/binfmt_misc
tracefs                    tracefs            0        0        0     - /sys/kernel/tracing
hugetlbfs                  hugetlbfs          0        0        0     - /dev/hugepages
mqueue                     mqueue             0        0        0     - /dev/mqueue
debugfs                    debugfs            0        0        0     - /sys/kernel/debug
tmpfs                      tmpfs       16175660      836 16174824    1% /tmp
configfs                   configfs           0        0        0     - /sys/kernel/config
fusectl                    fusectl            0        0        0     - /sys/fs/fuse/connections
/dev/sda1                  ext4          996780    88744   839224   10% /boot
/dev/mapper/openeuler-home ext4        72823856     1228 69077656    1% /home
sunrpc                     rpc_pipefs         0        0        0     - /var/lib/nfs/rpc_pipefs
binfmt_misc                binfmt_misc        0        0        0     - /proc/sys/fs/binfmt_misc

  1. df -h 挂载点 查看具体的磁盘容量
[root@zrclass ~]# df -h /dev/
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        470M     0  470M    0% /dev
[root@zrclass ~]# df -h /boot/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda1      1014M  171M  844M   17% /boot

5.参数说明

   -a, --all
          列出包括BLOCK为0的文件系统

   --block-size=SIZE use SIZE-byte blocks
          指定块的大小

   -h,--huma-readable"
          用常见的格式显示出大小(例如:1K 234M 2G)

   -H,--si"
          同上,但是这里的1k等于1000字节而不是1024字节

   -i, --inodes
          用信息索引点代替块表示使用状况

   -k, --kilobytes
          指定块大小等于1024字节来显示使用状况

   -l, --local
          只显示本地文件系统使用状况

   -m, --megabytes
          以指定块大小等于1048576字节(1M)来显示使用状况

   --no-sync
          在取得使用信息前禁止调用同步 (default)

   -P, --portability
          使用POSIX格式输出

   --sync 在取得使用信息前调用同步

   -t, --type=TYPE
          只显示指定类型(TYPE)的文件系统

   -T, --print-type
          输出每个文件系统的类型

   -x, --exclude-type=TYPE
          只显示指定类型(TYPE)之外的文件系统

二.对根目录进行扩容

对根目录扩容的前提是其他分区有足够的空间来分给根目录/。

1.查看磁盘情况

[root@localhost ~]# df -lh
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                     16G     0   16G    0% /dev
tmpfs                        16G  592K   16G    1% /dev/shm
tmpfs                       6.2G  563M  5.7G    9% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root   69G   14G   52G   21% /
tmpfs                        16G  836K   16G    1% /tmp
/dev/sda1                   974M   87M  820M   10% /boot
/dev/mapper/openeuler-home   70G  1.2M   66G    1% /home

2.扩容思路

将/home文件夹备份,删除/home文件系统所在的逻辑卷,增大/文件系统所在的逻辑卷,增大/文件系统大小,最后新建/home目录,并恢复/home文件夹下的内容。

3.扩容步骤

(1) 备份/home分区内容

sudo tar cvf home.tar /home

(2)卸载/home

卸载前最好先停止/home下的占用进程,否则会报错提示目标忙

sudo fuser -km /home/

卸载/home

sudo umount /home

(3)删除 /home所在的逻辑卷lv

sudo lvremove /dev/mapper/centos-home

(4) 扩大根目录所在的逻辑卷,这里增大40G

sudo lvextend -L +40G /dev/mapper/centos-root

(5) 扩大/文件系统

注意lvextend 扩展后只是扩展了lv的大小,而此时文件系统并未感知到,所有还需要使用xfs_growfs、resize2fs等命令来扩展文件系统,xfs_growf命令是扩展xfs文件系统,resize2fs是扩展ext4文件系统。

可以通过df -Th命令来查看文件类型

[root@localhost ~]# df -Th
文件系统                   类型      容量  已用  可用 已用% 挂载点
devtmpfs                   devtmpfs   16G     0   16G    0% /dev
tmpfs                      tmpfs      16G  592K   16G    1% /dev/shm
tmpfs                      tmpfs     6.2G  563M  5.7G    9% /run
tmpfs                      tmpfs     4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root ext4       69G   14G   52G   21% /
tmpfs                      tmpfs      16G  836K   16G    1% /tmp
/dev/sda1                  ext4      974M   87M  820M   10% /boot
/dev/mapper/openeuler-home ext4       70G  1.2M   66G    1% /home

如果文件类型为xfs,可使用xfs_growf命令是扩展

sudo xfs_growfs /dev/mapper/centos-root

如果文件类型为ext4,可使用resize2fs扩展

sudo resize2fs  /dev/mapper/centos-root

(6) 重建/home文件系统所需要的逻辑卷

由于刚才我们分出去40G,因此这里创建的逻辑卷大小为30G

 sudo lvcreate -L 30G -n/dev/mapper/centos-home

(7)创建文件系统

创建xfs文件系统

mkfs.xfs /dev/mapper/centos-home

创建ext4文件系统

mkfs.ext4 /dev/mapper/centos-home
# 或者
mke2fs -t ext4 /dev/mapper/centos-home

(8) 将新建的文件系统挂载到/home目录下

xfs文件系统

mount /dev/mapper/centos-home

ext4文件系统

mount -t ext4 /dev/mapper/centos-home

(9) 恢复/home目录的内容

sudo tar xvf home.tar /

三.扩展:mke2fs和mkfs的区别

mke2fs和mkfs都是用于创建Ext文件系统的命令,它们可以在Linux系统中使用。两个命令的作用相同,但具体用法略有不同。

  1. mke2fs命令:
    mke2fs是make ext2/ext3/ext4 filesystem的缩写,用于创建Ext2、Ext3或Ext4文件系统。它的详细用法如下:
mke2fs [选项] 设备名

常用选项包括:

  • -t 文件系统类型:指定要创建的文件系统类型,如ext4、ext3、ext2等,默认为当前内核所支持的默认文件系统类型。
  • -c:检测并标记设备上的坏块。
  • -L 卷标:为文件系统设置卷标名称。
  • -m 保留空间百分比:指定要保留的百分比,该空间仅为超级用户保留。
  • -T 特性列表:为文件系统设置特性列表。
  • -b 块大小:指定文件系统的块大小,通常是4096字节。

示例:

sudo mke2fs -t ext4 /dev/sdb1

以上命令将在/dev/sdb1设备上创建一个ext4文件系统。

  1. mkfs命令:
    mkfs是make filesystem的简写,它是一个通用的命令,可以用于创建多种类型的文件系统。在使用mkfs时,需要指定要创建的文件系统类型,例如:
mkfs -t ext4 /dev/sdb1

以上命令与mke2fs的作用相同,将在/dev/sdb1设备上创建一个ext4文件系统。

总结而言,mke2fs是专门用于创建Ext文件系统的命令,而mkfs是通用的命令,可以创建多种类型的文件系统,包括Ext文件系统。在使用时,根据具体需要选择合适的命令即可。

你可能感兴趣的:(问题解决,linux,运维,服务器)