我试图增加 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 破坏了我的系统,因此我写下了修复这些问题的程序。如下所示:
- 将计算机启动到 Ubuntu live USB 并选择“试用 Ubuntu”
- 打开终端并发出
sudo blkid
,这将列出带有 UUID 和标签的驱动器和分区。识别系统分区。 - 在终端问题中,其中
sudo mount /dev/sd__ /mnt
sd__ 是您在步骤 2 中确定的系统分区,可能是 sda1。注意 /mnt 前面的空格 - 编辑 fstab 并修复问题,
sudo nano /mnt/etc/fstab
确保保存您的工作。 - 重新启动进入修复的系统!记得移除活动 USB。
答案2
默认的 Linux 命令行在启动时(更准确地说,在 initramfs 之后)将 root 挂载为只读。
最安全的方法是执行以下操作:
- 重新启动到 GRUB;如果您看到空白屏幕,请点击Esc。
- 选择 Ubuntu 的启动项。不要点击Enter;而是编辑启动项。GRUB 菜单底部会告诉您可以做什么。
- 有一行以 开头
linux
。从该行中删除所有ro
参数。转到该行末尾并添加参数rw
。 - 启动。请参阅屏幕底部的说明。