使用 GParted 增加 Ubuntu 中的空间(无需 Live USB)

使用 GParted 增加 Ubuntu 中的空间(无需 Live USB)

这是我的 GParted 空间分配:

我的 GParted 空间分配

  1. 我想增加我的根空间 ext4,/dev/nvme0n1p6到左侧。
  2. 我想增加我的家庭空间 ext4 /dev/nvme0n1p8,。

请问,您能否建议我一些方法来增加两个分区,而不使用任何 Live USB?

答案1

无需 USB 即可启动 Ubuntu Live

  • 使用 Windows 磁盘管理来缩小您的 Windows 分区。

  • 将 Ubuntu ISO 放在您的 /home 分区上或将 swap 暂时更改为 ext4 然后将其放在那里。

  • 将以下菜单项添加到/etc/grub.d/40_custom

菜单项

menuentry "isoname ISO" {
    rmmod tpm
    set root=(hdX,Y)
    set isofile="/[path]/[name].iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile toram fsck.mode=skip --
        initrd (loop)/casper/initrd
}
  • 其中 hdX 是磁盘,Y 是 ISO 位置的分区号。

  • [path]是ISO文件的路径,[name]是ISO文件的名称。

  • 运行sudo update-grub将菜单项添加到 grub.cfg。

  • 关机并重启。

  • 从 GRUB 菜单中选择“isoname ISO”。 (如果您的 ISO 位于您正在更改的分区上,则可能需要启动 toram)。

  • 如果需要,您可以使用sudo umount -lrf /isodevice它来卸载 iso 设备。

您将可以像从 Live USB 启动一样访问 GParted。

答案2

我对 CS Cameron 的回答非常感兴趣,并渴望在我的某些机器上尝试一下。那个答案中的代码对我来说不起作用。rmmod tpm 行生成了一个非致命错误,所以我删除了它。我下载的 GParted iso 中没有 /casper 目录。但是有一个 /live 目录,我发现将“casper”条目更改为“live”是必要的。/live 包含 vmlinuz 和 initrd.img。这让我获得了大部分成功,各种搜索都抛出了“toram=filesystem.squashfs”以以这种方式启动其他 iso。然后我发现了这个GParted 网站链接使用以下代码并进行一些修改:

menuentry "GParted ISO" {
set root=(hd0,msdos1)
set isofile="/path/gparted.iso"
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live union=overlay username=user components noswap ip=net.ifnames=0 toram=filesystem.squashfs findiso=$isofile
    initrd (loop)/live/initrd.img

}

这在旧版 Ubuntu 20.04 和 Arch 上对我有用。我还没有在 UEFI/GPT 机器上尝试过,我预计会有所不同。我发现我必须从代​​码中删除“vga=788”,因为它已被弃用。在这两台机器上,我都将 iso 放在我的主目录中并将其重命名为“gparted.iso”。Ubuntu 机器有一个分区,因此路径是 /home/user/gparted.iso。Arch 机器有单独的 / 和 /home 分区,因此路径更短为 /user/gparted.iso

另一件至关重要的事情是找到 root=(hdX,Y) 的正确参数。您可以从 grub 菜单中找到这些参数,只需按 c 进入命令模式,然后按 ls 列出分区,再按 ls (hdX,Y)/ 列出该分区顶层的内容,这有助于识别。Y 可以是一个数字或类似 msdos1 的内容。

答案3

我会选择 CSCameron 的答案,但也可以选择在 grub 命令行中输入这些条目……但在紧要关头:

如果可用/可行,您还可以将驱动器从目标机器移到另一台 Linux 机器并正常启动并进行更改...然后删除...

反过来也是可能的,但是图形驱动程序可能会发挥作用,通过将驱动器从另一台 Linux 机器带到目标机器并覆盖正常启动并进行更改。

相关内容