![高效使用Linux中的文件系统](https://linux22.com/image/210966/%E9%AB%98%E6%95%88%E4%BD%BF%E7%94%A8Linux%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
这是我的磁盘目前的状态,我如何使用未使用的空间或移动内容来释放空间,而不格式化或丢失数据
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs 7.7G 121M 7.5G 2% /dev/shm
tmpfs 7.7G 2.0M 7.7G 1% /run
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/mapper/Root 50G 50G 336M 100% /
/dev/nvme0n1p2 3.0G 467M 2.6G 16% /boot
/dev/nvme0n1p1 200M 17M 184M 9% /boot/efi
/dev/mapper/Home 100G 30G 71G 30% /home
tmpfs 1.6G 52K 1.6G 1% /run/user/119637
lvmdiskscan 的输出
/dev/mapper/luks-e66c5c74-2af5-4500-9e5f-011c23ab17aa [ 235.26 GiB] LVM physical volume
/dev/nvme0n1p1 [ 200.00 MiB]
/dev/nvme0n1p2 [ 3.00 GiB]
/dev/nvme0n1p3 [ <235.28 GiB]
0 disks
3 partitions
1 LVM physical volume whole disk
0 LVM physical volumes
我可以合并主分区或为主目录添加一个分区,因为它有更多空间吗?以下步骤符合逻辑吗?
- 为家里再做一个隔断
- 将其合并到 root (不知道命令如何做)
- 假设我从主目录到 root 提供 10G,它将解决我的机器的存储问题,并且所有数据都将完好无损。
作为目前的解决方法,仅移动最重的文件
# find . -type f -size +1G
./VirtualBox VMs/origin-1.3.0/box-disk1.vmdk
./VirtualBox VMs/virtualBox-related_default_1654693896122_36201/centos-7-1-1.x86_64.vmdk
./.vagrant.d/boxes/thesteve0-VAGRANTSLASH-openshift-origin/1.2.0/virtualbox/box-disk1.vmdk
# mv "./VirtualBox VMs/origin-1.3.0/box-disk1.vmdk" /home/
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs 7.7G 155M 7.5G 2% /dev/shm
tmpfs 7.7G 2.0M 7.7G 1% /run
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/mapper/Root 50G 40G 11G 79% /
/dev/nvme0n1p2 3.0G 467M 2.6G 16% /boot
/dev/nvme0n1p1 200M 17M 184M 9% /boot/efi
/dev/mapper/Home 100G 40G 61G 40% /home
tmpfs 1.6G 48K 1.6G 1% /run/user/119637
不确定这将如何影响使用 virtualbox :)
答案1
您的lvmdiskscan
指示您在 LUKS 加密卷上有一个 LVM 物理卷 (PV),可能位于/dev/nvme0n1p3
。它的大小约为 235 GiB。如果您的/dev/mapper/Root
和/dev/mapper/Home
实际上是 LVM 逻辑卷,它们只会占用 150 GiB,因此您可能有大约 85 GiB 的未分配加密 LVM 磁盘空间,您可以使用它来扩展根文件系统而不缩小任何内容。您甚至可以在安装和使用文件系统时在线扩展它。
但是,设备名称/dev/mapper/Root
看起来/dev/mapper/Home
并不像 LVM 设备名称:LVM 逻辑卷通常使用/dev/<vg name>/<lv name>
or/dev/mapper/<vg name>-<lv name>
语法。如果它们是加密分区,它们位于哪个物理磁盘上,以及它们的相对位置是什么?这将对所需的程序产生重大影响。
如果不确切知道您的/dev/mapper/Root
和/dev/mapper/Home
是什么,就不可能为您提供有关如何最好地实现根文件系统扩展的准确建议。如果它们采用多个设备映射器层,则dmsetup ls --tree -o blkdevname
可能有助于理解各个映射层如何相互交互。
/dev/mapper/Root
另外,您还没有透露和上使用的文件系统类型/dev/mapper/Home
。文件系统类型具有重要的含义:例如,如果您的/dev/mapper/Home
文件系统是 XFS 文件系统,则目前在不备份数据、将文件系统重新缩小并恢复的情况下根本无法缩小mkfs
(据我所知) )目前还没有生产质量的 XFS 文件系统收缩工具。
答案2
您应该检查vgs
输出以查看 VG 中是否有可用空间。如果 VG 中有足够的可用空间,则可以在其上增加 /dev/mapper/Root 和文件系统。
如果 VG 中没有可用空间,则收缩 /dev/mapper/Home 上的文件系统并收缩 /dev/mapper/Home LV,而不是增大 /dev/mapper/Root LV 及其上的文件系统。
https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-resize-fs.html
https://www.mankier.com/8/lvreduce