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

Pon*_*Jar 4 live-cd live-usb partitioning

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

Pon*_*Jar 7

幸运的是,有一种方法可以在没有 U 盘或 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

从https://gparted.org/download.php下载 GParted iso 。它比 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
}
Run Code Online (Sandbox Code Playgroud)

/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 找到答案,请提出一个新问题,我会尽可能提供帮助。