须藤在 Xenserver 中的 Ubuntu 14.04 服务器虚拟机中无法运行。我猜它坏了。我忘记了 root 用户的密码,无法登录。由于它是 XenServer 中的虚拟机,因此重新启动时不会显示 grub。我该如何修复此问题。
这是我使用 sudo 时遇到的错误:-
>>> /etc/sudoers: syntax error near line 1 <<<
>>> /etc/sudoers: syntax error near line 1 <<<
sudo: parse error in /etc/sudoers near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
附加信息:
ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 155008 Aug 28 2015 /usr/bin/sudo
ls -l /etc/sudoers
-r--r----- 1 root root 4 Mar 1 11:31 /etc/sudoers
谢谢
答案1
我不太清楚 xen 的情况,但使用 VirtualBox 时,您只需添加 Linux live iso 并将启动优先级设置为高于虚拟硬盘即可。然后,您应该能够启动到实时 Linux 并访问虚拟硬盘,使用以下命令挂载您的根分区
sudo mount /dev/sdxx /mountpoint
或者自动挂载。然后导航到/etc/sudoers
并修复错误的行。
sudo vim /挂载点/etc/sudoers
或者 nano 或者任何您喜欢的文本编辑器。
如果您有第二个虚拟机,您可以在那里执行上述操作,只需将虚拟硬盘添加到具有较低启动优先级的第二个虚拟机即可。
答案2
谢谢你的帮助。我刚刚解决了我的问题。
由于它是 XenServer 中的虚拟机,我无法通过按 Shift 键进入 grub。搜索了一段时间后,我找到了一种进入 root 用户的方法。我所做的是:
我右键单击有问题的虚拟机 -> 属性,
然后进入启动选项选项卡。我修改了操作系统启动参数:
-- 安静控制台 = hvc0
到:
单身的
然后重启后,我可以直接进入 root shell 提示符。我的首要任务是更改 root 密码。首次登录时更改用户密码不需要旧密码。我只需使用命令密码并且 VM 要求我输入新密码。
然后我将虚拟机的启动参数更改为--quiet console = hvc0并重新启动。
我已经将虚拟机克隆到另一台服务器。但由于这台虚拟机是一台实时服务器,我必须从问题中恢复过来。我使用 root 权限将 sudoers 文件从克隆服务器 ssh 到实时服务器中的另一个文件夹,因为直接复制文件时出现了一些错误。然后将文件复制到实时虚拟机中的 sudoers 文件,然后就好了!!