Bipa Asked: 2018-12-19 05:46:31 +0800 CST2018-12-19 05:46:31 +0800 CST 2018-12-19 05:46:31 +0800 CST 意外重命名 /etc 后,如何重命名? 772 我正在使用 Ubuntu 18.04。 我将/etc文件夹重命名为apache2. 那是我最大的错误 现在我无法重命名它,因为我需要使用sudo,但是当我尝试时出现错误 sudo: unknown uid 1000 我该如何解决这个问题?我没有可以启动的实时系统,并且在恢复模式下,根终端打开但然后关闭说cannot open password database. sudo etc 3 个回答 Voted Best Answer Zanna 2018-12-19T06:53:51+08:002018-12-19T06:53:51+08:00 解决此类问题的一种简单方法通常是从实时系统启动,挂载根分区/mnt ,然后重命名文件。 如果您没有实时系统或制作方法,或者您没有对系统的物理访问权限但您可以重新启动并获取 GRUB 菜单,您可以使用 GRUB 编辑器获取 root shell 并重命名文件。 重新启动或关闭电源,打开电源,如果您在启动时通常看不到 GRUB 菜单,请按Shift或Esc进入 GRUB 菜单。 将光标向下移动到Ubuntu 的高级选项并按enter,然后按e编辑引导选项(仅一次 - 此处的更改不会是永久性的,因此我们不必事后清理)。 您将看到一个类似于1的屏幕: 将光标向下移动到开头的行,linux然后将光标移动到该行的末尾,或者那里的内核引导参数中的任何位置。确保您在正确的线路上并在此处仔细键入,因为系统可能无法在没有/etc到位的情况下启动。 添加文本init=/bin/bash并按F10启动。 这将使用 Bash shell 作为 init 启动系统。您将获得一个 root shell,并且文件系统将以只读方式挂载。2要使文件系统可写,请输入命令 mount -o remount,rw / 现在你可以重命名/etc(你可能想ls先) mv /apache2 /etc 现在您可以重新启动,或者通过让 root shell 将自己替换为正常的 init 系统3从这里正常完成启动: exec systemd 我在 Ubuntu MATE 18.04 上测试了这个过程。 1 非常感谢Kulfy从 VirtualBox 获得高质量的 GRUB 编辑器截图! 2虽然在这种情况下无法从配置文件中设置 PATH /etc,但 Bash 会自动设置一个. 3如果exec systemd不适合你,exec /sbin/init应该做的伎俩。如果没有,readlink -e /sbin/init应该给出应该运行的任何 init 程序的路径,然后你可以exec使用它的完整路径。如果您无法以这种方式继续,只需输入reboot. Minty 2018-12-19T05:55:05+08:002018-12-19T05:55:05+08:00 如果你有一个 live USB,你应该能够引导到它并挂载你现有的文件系统,然后/etc从那里重命名你的文件系统。这是有关如何在需要时创建实时 USB 的教程。 一旦启动到 live USB(如果使用 Ubuntu 18.04 驱动器),选择“不安装就尝试 Ubuntu”,它实际上会为您提供一个完整的 Ubuntu 安装实例,该实例在关机后不会持续存在。启动后,您有几个选择: 命令行方式 打开终端并运行lsblk. 查找将成为原始安装驱动器的卷并记下它的编号 (/dev/sd#) 然后,使用 为驱动器创建一个挂载点mkdir -p /mnt/directory,然后使用 挂载驱动器sudo mount /dev/sd# /mnt/directory。导航到目录,cd /mnt/directory您现在应该位于安装的根目录中,但现在使用了一个工作sudo命令。运行sudo mv apache2 etc并重新启动到您假设工作的操作系统。 图形方式 通过搜索磁盘打开磁盘实用程序。选择看起来像您的安装驱动器的卷并安装它。打开文件管理器并选择已安装的卷,右键单击您的/apache2文件夹并将其重命名为/etc,然后重新启动。 Vijay 2018-12-19T05:54:54+08:002018-12-19T05:54:54+08:00 制作可启动 USB,如下所示。 按此处所示的键从 USB 启动。 通过运行找出您的文件系统分区gparted。假设它是 sdxy。 在终端上运行sudo mount /dev/sdxy /mnt 在终端上运行sudo mv /mnt/apache2 /mnt/etc 检查 /mnt 中的文件系统以了解名称更改。 在终端上运行sudo reboot 出现提示时移除 USB 并按 Enter
解决此类问题的一种简单方法通常是从实时系统启动,挂载根分区
/mnt
,然后重命名文件。如果您没有实时系统或制作方法,或者您没有对系统的物理访问权限但您可以重新启动并获取 GRUB 菜单,您可以使用 GRUB 编辑器获取 root shell 并重命名文件。
重新启动或关闭电源,打开电源,如果您在启动时通常看不到 GRUB 菜单,请按Shift或Esc进入 GRUB 菜单。
将光标向下移动到Ubuntu 的高级选项并按enter,然后按e编辑引导选项(仅一次 - 此处的更改不会是永久性的,因此我们不必事后清理)。
您将看到一个类似于1的屏幕:
将光标向下移动到开头的行,
linux
然后将光标移动到该行的末尾,或者那里的内核引导参数中的任何位置。确保您在正确的线路上并在此处仔细键入,因为系统可能无法在没有/etc
到位的情况下启动。添加文本
init=/bin/bash
并按F10启动。这将使用 Bash shell 作为 init 启动系统。您将获得一个 root shell,并且文件系统将以只读方式挂载。2要使文件系统可写,请输入命令
现在你可以重命名
/etc
(你可能想ls
先)现在您可以重新启动,或者通过让 root shell 将自己替换为正常的 init 系统3从这里正常完成启动:
我在 Ubuntu MATE 18.04 上测试了这个过程。
1 非常感谢Kulfy从 VirtualBox 获得高质量的 GRUB 编辑器截图!
2虽然在这种情况下无法从配置文件中设置 PATH
/etc
,但 Bash 会自动设置一个.3如果
exec systemd
不适合你,exec /sbin/init
应该做的伎俩。如果没有,readlink -e /sbin/init
应该给出应该运行的任何 init 程序的路径,然后你可以exec
使用它的完整路径。如果您无法以这种方式继续,只需输入reboot
.如果你有一个 live USB,你应该能够引导到它并挂载你现有的文件系统,然后
/etc
从那里重命名你的文件系统。这是有关如何在需要时创建实时 USB 的教程。一旦启动到 live USB(如果使用 Ubuntu 18.04 驱动器),选择“不安装就尝试 Ubuntu”,它实际上会为您提供一个完整的 Ubuntu 安装实例,该实例在关机后不会持续存在。启动后,您有几个选择:
命令行方式
打开终端并运行
lsblk
. 查找将成为原始安装驱动器的卷并记下它的编号 (/dev/sd#)然后,使用 为驱动器创建一个挂载点
mkdir -p /mnt/directory
,然后使用 挂载驱动器sudo mount /dev/sd# /mnt/directory
。导航到目录,cd /mnt/directory
您现在应该位于安装的根目录中,但现在使用了一个工作sudo
命令。运行sudo mv apache2 etc
并重新启动到您假设工作的操作系统。图形方式
通过搜索磁盘打开磁盘实用程序。选择看起来像您的安装驱动器的卷并安装它。打开文件管理器并选择已安装的卷,右键单击您的
/apache2
文件夹并将其重命名为/etc
,然后重新启动。制作可启动 USB,如下所示。
按此处所示的键从 USB 启动。
通过运行找出您的文件系统分区
gparted
。假设它是 sdxy。在终端上运行
sudo mount /dev/sdxy /mnt
在终端上运行
sudo mv /mnt/apache2 /mnt/etc
检查 /mnt 中的文件系统以了解名称更改。
在终端上运行
sudo reboot
出现提示时移除 USB 并按 Enter