系统无法启动 - 无法激活交换 /swapfile

系统无法启动 - 无法激活交换 /swapfile

截至昨天,我还是 Linux 的新手,似乎做错了什么。昨晚我启动并运行了系统,没有出现任何明显问题,但今天当我尝试启动时,出现了错误,整个系统都失败了。

背景信息:我的电脑有一块 500 GB 的 SSD,Ubuntu(版本 20.04.1)就安装在这块 SSD 上,还有一块 2TB 的 HDD,我昨晚格式化了它以供使用。我怀疑我的问题与这个事实有关,因为在格式化之前,我可以多次重启系统而没有任何问题。不幸的是,我对 Ubuntu 了解不够,甚至不知道从哪里开始,而且我似乎无法在网上找到针对我的具体情况的任何帮助。

启动时,我有三个选项

  • Ubuntu
  • Ubuntu 的高级选项
  • UEFI 固件设置

这是我选择 Ubuntu 后得到的具体输出:

    [Failed] Failed to activate swap /swapfile
    [Depend] Dependency failed for Swap

如果有任何其他与此问题相关的信息或我应该尝试什么,请告诉我。非常感谢您的所有建议。

以下是以 root 权限运行推荐命令的输出:

    grep -i swap /etc/fstab
    /swapfile          none          swap    sw          0     0

    ls -al /swapfile
    -rw------- 1 root root 2147483648 Sep 24 03:41 /swapfile

答案1

一切看起来都很正常,但让我们重新创建 /swapfile。

像刚才一样启动到恢复模式,然后执行以下操作......

笔记:命令使用不当dd可能导致数据丢失。建议复制/粘贴。

terminal(或 root # 提示符下)...

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile      # remove old /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm nnG RAM and 4G swap

确认 /etc/fstab 末尾的 /swapfile 行...并确认没有其他“swap”行...

要编辑,使用sudo -H gedit /etc/fstabsudo pico /etc/fstab

/swapfile    none    swap    sw      0   0

reboot                    # reboot and verify operation

更新#1:

/etc/fstab 乱了,导致文件系统只读。刚安装的 Ubuntu 只用了 1 个小时,所以我建议重新安装 Ubuntu。

UUID="fae3ba3a-abaf-4eca-8139-40d5328d017c" /srv ext4 errors=remount-ro 0

答案2

我遇到了同样的问题并成功解决了。

最大的问题是只读文件系统。正如您所提到的,/etc/fstab 混乱,导致文件系统为只读。我认为您在 /etc/fstab 中错误地安装了默认磁盘设备(文件系统安装在该设备上)。

作为解决方案,您只需要在恢复模式下使用 uuid 标签手动重新安装默认磁盘。命令如下:

sudo mount -o remount UUID=你的默认磁盘的 uuid /

最后的/表示根节点。

此后,您的文件系统即可写入。在重新启动系统之前,您应该正确修改 /etc/fstab。

答案3

我实际上也遇到过类似的问题。缺点是,我从一个故障硬盘驱动器上完成了复制,然后 Ubuntu 决定对我的交换区进行小幅更改。由于我的配置设置不正确,所以一切都因完全相同的问题而中断。

我用不同的方法解决了它。

因此,我遵循了与https://askubuntu.com/a/1277621/1168565来自 Heynnema 并创造了奇迹,但就我而言,这不是根本问题。

在 fstab 中,我遇到了一个问题,我的根驱动器未设置(按照正常的 Ubuntu 安装,稍后会解释)。因此,当我将主硬盘驱动器添加到 fstab 时/,我能够毫无问题地启动。

这是我的 fstab 的一个示例:

$ cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=fa1b78f3-9d98-42e3-9a72-a9716000d8f9 /               ext4 defaults 0 0
/swapfile       none     swap   sw   0   0
UUID=b31e2ef4-6240-47d6-8ef9-2b98622603a8 /1tb       ext4 defaults 0 0
UUID=e37a2ae4-74c8-4bd1-b3ad-36ba5904a680 /500gb     ext4 defaults 0 0

/因此,我的第 3 行之前并不存在,并且由于在更新后初始化时无法找到交换而导致问题。

但是,当我加载恢复系统时,我无法编辑 fstab,因为它处于只读状态。只需使用该命令mount -o remount /,系统就会自动删除只读状态,以便您/etc/fstab使用首选文本编辑器进行更新。

如果您的系统出现问题或者由于只读问题而将您锁定,我建议使用 livecd 系统来修改您的/etc/fstab,然后正常启动。

相关内容