我试图增加 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 的行。但返回的 UUID 没有任何行mkswap /swapfile
。并且尝试启动时仍然出现错误。
你可以解决这个问题!当我开始使用 Ubuntu 时,我多次用 fstab 破坏了我的系统,我写下了如何修复它们的过程。给你:
sudo blkid
,这将列出带有 UUID 和标签的驱动器和分区。识别系统分区。sudo mount /dev/sd__ /mnt
,其中 sd__ 是您在步骤 2 中确定的系统分区,可能是 sda1。注意 /mnt 之前的空格sudo nano /mnt/etc/fstab
编辑 fstab 并使用“务必保存您的工作”修复问题。默认的 Linux 命令行在启动时将 root 挂载为只读(更准确地说,就在 initramfs 之后)。
最安全的方法是执行以下操作:
linux
。删除ro
该行中的所有参数。转到该行的末尾并添加参数rw
。