尝试更改交换大小后,主机和 fstab 文件混乱

尝试更改交换大小后,主机和 fstab 文件混乱

我试图增加 Ubuntu 的交换空间大小。我天真地按照以下步骤操作:这个答案

检查正在使用的交换:

sudo swapon -s

If swap partition(s) are found:

sudo swapoff -a
sudo nano -Bw /etc/fstab

Add # before the UUID of the swap partition(s):

# UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX   none   swap    sw     0       0

Add a line for the swapfile, if one does not exist:

swapfile   none    swap     sw      0       0

Create the swapfile:

sudo fallocate -l XG /swapfile*

where X is swapfile's size in GB:

sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile

Reboot:

sudo reboot

此后,我的计算机只能以恢复模式启动。

我尝试跟随这个答案。但出现错误unable to resolve host my-laptop-name: Temporary failure in name resolution并导致该过程失败。

我尝试修复它另一个答案上面说 /etc/hostname 和 /etc/hosts 中的主机名必须相同。/etc/hosts 中的主机名是错误的。但该文件是只读的,我无法写入,即使使用 sudo 也无法写入。

我检查了 /etc/fstab,发现我愚蠢地将 # 添加到启动盘的 UUID 中,而不仅仅是交换分区。我试图删除 #。但该文件也是只读的。我现在想自杀 :)。

如果经过这些还不清楚的话,那说明我对 Linux 了解不多。

编辑1:

我的 Ubuntu 版本是 Desktop 22.04.3 LTS

当我执行 sudosudo nano /etc/fstab从启动行中删除 # 时,[ File '/etc/fstab' is unwritable/etc/hosts 也会发生同样的情况。

编辑2:

我编辑了 GRUB 中的启动选项,并且它可以编辑 /etc/fstab 和 /hosts。

现在我很纠结,因为当我尝试正常启动时,系统会引发有关交换的错误。这是错误:

[0.219748] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PC00.DGPV],
AE_NOT_FOUND (20230331/psargs-330)
[0.219765 ACPI Error: Aborting method \SB.PC00.PEG0.PCRP._OFF due to previous error (AE_NOT_FOUND) (20230331/psparse-596)

/dev/nvme0n1p2: clean, 848739/15597568 files, 29875721/62383360 blocks

[2.251365] systemd[1]: Failed to activate swap /swapfile.
[FAILED] Failed to activate swap /swapfile.
[DEPEND] Dependency failed for Swaps.

[3.057060] iwlwifi <ipv6> BIOS contains WGDS but no WRDS

我尝试重新创建交换文件,例如这个答案。这些是我为此运行的命令:

swapoff -a
rm /swapfile 
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile

mkswap /swapfile
#anwer to this line is:
# setting up swapspace version 1, size 4 GiB
# no label, UUID=<long UUID>

swapon /swapfile

然后我检查了 /etc/fstab。最后有一行/swapfile none swap sw 0 0。还有一行带有启动分区的 UUID。但没有mkswap /swapfile返回 UUID 的行。尝试启动时仍然会出现错误。

答案1

您可以修复此问题!当我开始使用 Ubuntu 时,我多次使用 fstab 破坏了我的系统,因此我写下了修复这些问题的程序。如下所示:

  1. 将计算机启动到 Ubuntu live USB 并选择“试用 Ubuntu”
  2. 打开终端并发出sudo blkid,这将列出带有 UUID 和标签的驱动器和分区。识别系统分区。
  3. 在终端问题中,其中sudo mount /dev/sd__ /mntsd__ 是您在步骤 2 中确定的系统分区,可能是 sda1。注意 /mnt 前面的空格
  4. 编辑 fstab 并修复问题,sudo nano /mnt/etc/fstab确保保存您的工作。
  5. 重新启动进入修复的系统!记得移除活动 USB。

答案2

默认的 Linux 命令行在启动时(更准确地说,在 initramfs 之后)将 root 挂载为只读。

最安全的方法是执行以下操作:

  • 重新启动到 GRUB;如果您看到空白屏幕,请点击Esc
  • 选择 Ubuntu 的启动项。不要点击Enter;而是编辑启动项。GRUB 菜单底部会告诉您可以做什么。
  • 有一行以 开头linux。从该行中删除所有ro参数。转到该行末尾并添加参数rw
  • 启动。请参阅屏幕底部的说明。

相关内容