如何在没有 USB/CD 的情况下修改分区

如何在没有 USB/CD 的情况下修改分区

许多人在想要修改正在运行的系统上的分区时都会遇到困难。通常是因为他们想要修改的分区已安装,而当他们运行 GParted 时,该分区标有锁定符号。最简单的解决方案当然是使用实时环境并从那里进行更改。但是,当他们出于某种原因无法访问实时媒体时会发生什么?也许他们只是无法访问 USB 设备来放置合适的实时环境,例如 ubuntu 安装 iso 或较小的 GParted 实时 iso。您可以在没有实时 USB/CD 的情况下修改分区吗?

答案1

幸运的是,有一种方法可以在没有 USB 记忆棒或 CD 驱动器的情况下启动实时环境。

这个答案的概述是,您可以通过向 grub 添加自定义条目来启动存储在硬盘上的 iso 映像。但是,在尝试修改分区之前,请务必备份您不能丢失的所有数据。这些是步骤:

在 grub 命令符号中识别您的分区。

这可能是此过程中最不为人所知的部分。我建议使用您的主目录来存储 iso 映像,因此您需要从 grub 命令提示符的角度找到它的位置。

您可以在启动时从 grub 菜单执行此操作,只需按下c命令模式提示符,然后ls列出分区。您应该看到一个包含(hd0、msdos1)或(hd0、gpt1)等内容的列表。这些是您系统上的分区,您正在寻找包含主目录的分区。要执行此操作,请ls (hdX,Y)/在命令模式提示符下键入以列出该分区顶层的内容。如果您没有单独的主分区,则正在寻找包含 home/ 的分区,如下所示。如果您有单独的主分区,则正在寻找 john/ 或 jane/ 或您的用户名。

在此处输入图片描述

如果您的系统直接启动到 Ubuntu,您可以在启动时按下 Shift 键(传统系统)或 Esc 键(UEFI 系统)来使 grub 菜单可见。

下载 iso

从以下网址下载 GParted iso https://gparted.org/download.php。它比 Ubuntu iso 小,但也能用。选择永久存储它的位置。在此示例中,我选择了我的主目录并将 iso 重命名为 gparted.iso,而不是使用下载的较长名称并指定 gparted 版本。这意味着我的 iso 保存在 /home/user/gparted.iso

修改 grub

下一步是修改 /etc/grub.d/40_custom 文件。您的文件需要如下所示:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "GParted ISO" {
    set root=(hd0,msdos1)
    set isofile="/home/username/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
}

/etc/grub.d/40_custom 文件应该已经有前 5 行,并且可能还有其他自定义条目(如果您之前已添加)。您可以保留任何先前添加的内容。

您的文件版本会略有不同。您需要更改该root=(hdX,Y)行的正确参数。您还需要在该set isofile="/home/username/gparted.iso"行中获取设置的正确路径。如果您有单独的主分区,则应该是set isofile="/username/gparted.iso"

您可以按照自己喜欢的方式编辑该文件,但其中一种方法是打开主文件夹中的终端并使用以下命令:

a) cp /etc/grub.d/40_custom 40_custom.bak(这将备份您的主目录中的 40_custom 文件)

b) cp /etc/grub.d/40_custom 40_custom(这将在您的主目录中生成 40_custom 文件的工作副本,您可以使用您选择的编辑器对其进行编辑)

c)sudo cp 40_custom /etc/grub.d/40_custom(将修改后的文件复制回去)

d)sudo update-grub

重新启动后,您应该会看到一个 grub 菜单,其中有一个新条目“GParted ISO”,它将引导您进入 GParted 实时环境,您可以在其中修改分区。我关注分区问题,因此如果您遇到任何问题,并且无法通过搜索 Ask Ubuntu 找到答案,请提出新问题,我会尽力提供帮助。

答案2

感谢您分享!对于没有经验的用户来说,这可能不是最简单的解决方案,但在某些(或许多)情况下可能非常有用 :)

但如果图像文件太大,无法通过托拉姆选项您可能无法(或不应该)修改存储图像文件的分区。

如果它只是一个小图像文件,托拉姆这可能不是一个问题。但如果图像文件大于系统内存,或者托拉姆未使用。我不想知道当您移动或调整存储映像文件的分区时会发生什么,并且必须移动包括映像文件在内的数据,并且在移动之后,系统尝试从现在位于磁盘上其他位置的映像文件中读取数据...

为图像文件设置一个单独的小分区可能是最好和最安全的解决方案(或者只是不修改存储图像文件的分区)

关于从硬盘启动 ISO 文件的更多有用信息可以在这里找到:https://help.ubuntu.com/community/Grub2/ISOBoot

相关内容