我在 Xen 服务器上有一个 ubuntu 14.04 服务器虚拟机。我为其分配了 40Gb 磁盘空间,我的分区表如下所示
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 4.0K 16G 1% /dev
tmpfs 3.1G 712K 3.1G 1% /run
/dev/mapper/QAAutomationServer--vg-root 8.3G 7.1G 797M 91% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 16G 0 16G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvda1 236M 68M 156M 31% /boot
如果仔细观察,就会发现我的根分区分配了大约 8gb,几乎已满。/run/shm 有 16gb,/dev 还有 16gb,几乎没有使用。
我尝试在 Google 上查找是否可以修复此问题,但我找到的每个解决方案都建议使用 live cd 启动并使用 gparted 来管理分区。但在 Xen 上的虚拟机上,我无法做到这一点。
有人能帮我解决这个问题吗?
谢谢,Kiran
编辑
输出sudo parted -l
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/QAAutomationServer--vg-root: 9135MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 9135MB 9135MB ext4
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/QAAutomationServer--vg-swap_1: 33.6GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 33.6GB 33.6GB linux-swap(v1)
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2
2 257MB 42.9GB 42.7GB extended
5 257MB 42.9GB 42.7GB logical lvm
編輯2
我对 lvm 进行了一些研究,了解到我可以使用lvextend
和调整逻辑分区的大小lvreduce
。
这是输出lvdisplay
lvdisplay
--- Logical volume ---
LV Path /dev/QAAutomationServer-vg/root
LV Name root
VG Name QAAutomationServer-vg
LV UUID ZRnyaa-fDlK-ulAH-2rcv-Haga-lxuU-TB0kqb
LV Write Access read/write
LV Creation host, time QAAutomationServer, 2015-09-04 11:57:16 -0700
LV Status available
# open 1
LV Size 8.51 GiB
Current LE 2178
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/QAAutomationServer-vg/swap_1
LV Name swap_1
VG Name QAAutomationServer-vg
LV UUID QTPf2n-y8CA-FZDL-3xLH-33BX-mZIv-Zx1Jyu
LV Write Access read/write
LV Creation host, time QAAutomationServer, 2015-09-04 11:57:17 -0700
LV Status available
# open 0
LV Size 31.25 GiB
Current LE 8000
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
因此,我正在尝试lvreduce -L -5g /xyz
交换分区,然后lvextend -L +5g /abc
尝试根分区。
一旦完成,我将sudo resize2fs /def
在根分区上执行
我不确定这是否能确保不丢失数据,但我现在可以看到根分区上有额外的空间。
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 4.0K 16G 1% /dev
tmpfs 3.1G 712K 3.1G 1% /run
/dev/mapper/QAAutomationServer--vg-root 14G 7.1G 5.6G 57% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 16G 0 16G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvda1 236M 68M 156M 31% /boot
答案1
您在注释顶部显示的不是您的分区表。它是您已安装系统的列表。/run/shm
和 /dev 不是“真实”文件系统。它们是位于计算机 RAM 中的虚拟文件系统。它们不使用任何磁盘空间。
真正有趣的是:
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 42.9GB
[...]
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2
2 257MB 42.9GB 42.7GB extended
5 257MB 42.9GB 42.7GB logical lvm
您的虚拟磁盘设备(大小约为 42GB)分为两个主分区:1:启动(挂载到 /boot)2:扩展在您的扩展分区中,您有一个用于 lvm 的分区。LVM 代表 Linux 卷管理器。它会创建一个虚拟块设备,您可以将其用作常规块设备,但可以“动态”扩展或收缩,并使用多个物理卷构建它,这在某些情况下非常方便。
在该虚拟设备上,您有两个虚拟分区:
首先:
/dev/mapper/QAAutomationServer--vg-root: 9135MB
它被挂载为你的根分区,其次:
/dev/mapper/QAAutomationServer--vg-swap_1: 33.6GB
这是你的交换。
正如您所看到的,交换占用了整个驱动器的 3/4 以上。
所以我的建议是:1. 关闭交换 2. 删除/缩小交换分区 3. 扩展根分区 4. 调整根文件系统大小(这可能可以在“实时”文件系统上完成)5. 使用剩余空间创建交换分区 6. 打开交换
在这里您将找到如何处理 LVM 卷:http://www.tecmint.com/extend-and-reduce-lvms-in-linux/
答案2
由于我使用进行了初始设置lvm
,因此我能够使用 lvm 来调整逻辑卷的大小,然后调整根分区的大小。
lvdisplay
- 列出所有可用的 lvm 分区
lvreduce -L -5g /lvmpartition
- 将选定的 lvmpartition 减少 5G
lvextend -L +5g /lvmpartition
- 将选定的 lvmpartition 扩展 5G
由于我已分配大约 30G 给交换,因此我可以将其缩小到 10G,并使用由此产生的 20G 可用空间扩展 lvm-root 分区。
lvdisplay
修改后的输出如下
LV Path /dev/QAAutomationServer-vg/root
LV Name root
VG Name QAAutomationServer-vg
LV UUID ZRnyaa-fDlK-ulAH-2rcv-Haga-lxuU-TB0kqb
LV Write Access read/write
LV Creation host, time QAAutomationServer, 2015-09-04 11:57:16 -0700
LV Status available
# open 1
LV Size 30.51 GiB
Current LE 7810
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/QAAutomationServer-vg/swap_1
LV Name swap_1
VG Name QAAutomationServer-vg
LV UUID QTPf2n-y8CA-FZDL-3xLH-33BX-mZIv-Zx1Jyu
LV Write Access read/write
LV Creation host, time QAAutomationServer, 2015-09-04 11:57:17 -0700
LV Status available
# open 0
LV Size 9.25 GiB
Current LE 2368
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
现在我sudo resize2fs
在根分区上做了以下输出df -h
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 4.0K 16G 1% /dev
tmpfs 3.1G 712K 3.1G 1% /run
/dev/mapper/QAAutomationServer--vg-root 30G 7.1G 22G 25% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 16G 4.0K 16G 1% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvda1 236M 68M 156M 31% /boot
这增加了我的根分区上的空间。希望这个答案能帮助遇到类似问题的人。