看来我添加了不正确的记录/etc/fstab
:
//servername/share /mnt/share cifs defaults,username=myuser 0 0
当我这样做时mount -a
,它要求用户密码来安装网络共享。似乎启动时没有密码就无法继续,所以它只是挂起。
如何修复 fstab 以防止启动失败?
答案1
看来我找到了解决办法:
- 在 GRUB 提示符下,点击A以附加选项。
- 添加
init=/bin/bash
到内核命令行的末尾并按Enter。
系统将启动到提示符,例如bash-3.2#
在提示符处输入以下命令
mount -o remount,rw /
然后编辑 fstab:
vim /etc/fstab
编辑 fstab 文件,通过在每个有问题的行的开头添加 # 来注释错误,保存文件并按Ctrl+ Alt+重新启动Del。
答案2
删除该条目,创建快照,然后尝试更改 /etc/fstab 以便拥有可以回滚到的工作快照怎么样?
根据联机帮助页 mount.cifs
您还可以通过 指定密码password=arg
。另外,根据该联机帮助页,没有参数username=arg
,而是user=arg
.但在您的系统上可能会有所不同,最好检查您的联机帮助页以获取正确的参数名称。
答案3
另一种简单的方法是启动到 live-cd 模式并安装正确的分区。然后你就可以修复任何你想要的东西!
答案4
我找到了系统错误内核未加载的解决方案使用 live cd 来访问您现有的安装。一旦重新安装 Linux 内核:
pacman -S Linux
然后从 etc/fstab 中删除 fstab 文件:
rm /etc/fstab
现在重新安装 systemd:
pacman -S systemd
重新安装systemd时会自动生成一个新的fstab文件
现在重新安装引导加载程序,在本例中我使用 grub:
pacman -S grub os-prober
(如果您的 HDD/SSD 上安装了超过 1 个操作系统,则操作系统探针很有用)然后
grub-install --target=i386-pc /dev/sda
完成后制作配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
然后卸载正在使用的分区并重新启动
umount /dev/sdX
reboot
这应该可以解决问题,它对我有用。