删除交换分区的问题

mag*_*ese 6 partitioning lvm swap gparted 14.04

我有一个 SanDisk SSD U100 124GB。当我安装 Ubuntu 14.04 时,我分区为:

- 250mb 启动;- 4GB 交换;- 其余的 ext4。

一段时间后,我删除了交换分区,以便将它与大分区合并,因为我不需要它。我已经成功地将交换和格式删除到 ext4,但我无法合并它,我不明白发生了什么。

在 gparted 中,我只看到一个/dev/sda大小为 115.48GB 的设备 ( ) 细分如下:

  • /dev/sda1 250MiB ext2 /boot
  • /dev/sda2 115.24 GiB 扩展;
  • /dev/sda5 115.24 GiB lvm2pv ubuntu-vg

为什么我有2个分区sda2,并sda5不仅1?为什么大小是 115 而不是 120?此外,为什么我看不到格式化的 4 GB 交换?

如果我在磁盘驱动器下打开磁盘,我的 124 硬盘分区为:

  • 250 MB ext2;
  • 124GB扩展分区2;
  • 124GB 分区 5 LVM2 PV。

但我也在其他设备 2 磁盘下:

  • 120GB 块设备 /dev/ubuntu-vg/root
  • 4GB 块设备 /dev/ubuntu-vg/swap_1

我不明白这一切。什么是其他设备?为什么 gparted 和磁盘显示不同的东西。

当我启动时,4GB 会自动安装在媒体中,我可以像传统的 USB 驱动器一样浏览它。

更新

按照@muru 的建议,我恢复了交换,现在我有了

lvm pvs: /dev/sda5  ubuntu-vg lvm2 a--  115.24g 40.00m
lvm vgs: ubuntu-vg   1   2   0 wz--n- 115.24g 40.00m
lvm lvs: root   ubuntu-vg -wi-ao--- 111.32g
         swap_1 ubuntu-vg -wi-a----   3.89g
Run Code Online (Sandbox Code Playgroud)

现在让我们假设我使用 livecd。你能告诉我删除swap_1并将其与root合并的命令吗(我想避免弄乱所有系统

mur*_*uru 16

您正在使用LVM。GParted 无法看到 LVM 卷之外的内容,它只能看到 LVM 卷存在。

115 GiB = 115*1024*1024*1024 字节 ~ 123480000000 = 123.48*1000*1000*100 = 123.48 GB(足够接近你的 SSD 大小)——这是在其他地方使用 SI 和二进制前缀的产物。

据推测,您制作的 4GB 交换分区格式不正确。您可以卸载它并运行:

sudo mkswap /dev/ubuntu-vg/swap_1
sudo swapon -a
Run Code Online (Sandbox Code Playgroud)

Ubuntu 在这里所做的大概是这样的:

  • 创建了一个 250 MB 的/boot主分区。
  • 为其余分区创建了一个扩展分区。
  • 在上述扩展分区中创建了一个 LVM 卷。
  • 在 LVM 卷中创建根分区和交换分区。

(这就是为什么您同时拥有sda2sda5。尝试使用该lsblk命令查看它们之间的关系。)

为什么交换分区没有被正确格式化是一个谜。


要删除交换并将空间合并回 root:

  1. 禁用交换。实时环境会自动激活它找到的任何交换分区:

    sudo swapoff -a
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用lvremove删除掉的LVM逻辑卷:

    lvremove ubuntu-vg/swap_1
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用lvextend扩展根分区的逻辑卷:

    lvextend ubuntu-vg/root /dev/sda5
    
    Run Code Online (Sandbox Code Playgroud)

    这将使用/dev/sda5(剩余 4GB)上的所有可用空间。

  4. 使用resize2fs调整根分区上的文件系统大小以使用新的额外空间:

    resize2fs /dev/ubuntu-vg/root
    
    Run Code Online (Sandbox Code Playgroud)