截至昨天,我还是 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/fstab
或sudo 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
,然后正常启动。