意外删除了 /etc/fstab 文件

Avi*_*Raj 16 command-line boot fstab

/etc/fstab通过运行不小心删除了我的文件sudo rm /etc/fstab。没有意识到我做了什么,我关闭了我的 Ubuntu 操作系统。

现在我无法启动。

在此处输入图片说明

我的屏幕看起来像这样。在某些情况下,会出现紫色屏幕。请给我一些解决方案。

Avi*_*Raj 20

您必须fstab/etc目录中重新创建一个新文件并为您的根分区添加一个条目,以便您的 Ubuntu 操作系统能够启动。

方法一:

通过恢复模式重新创建 /etc/fstab 文件

  1. 启动到恢复模式,然后降到 root shell。

  2. 运行sudo blkid命令以了解您的/(根)分区的 UUID。它将显示如下内容,

    /dev/sda1: UUID="52e062e0-716c-4828-9bf1-05b93fdaef93" TYPE="ext4"
    /dev/sda1: UUID="2F4DAFCF02D7EBEB" TYPE="ntfs" 
    /dev/sda3: UUID="039E0CF305398945" TYPE="ntfs" 
    /dev/sda5: UUID="C68C57908C5779BF" TYPE="ntfs" 
    
    Run Code Online (Sandbox Code Playgroud)
  3. sudo blkid输出中,确定您的根 ext4 分区并记下其相应的 UUID。

  4. 现在/通过运行以下命令以读写模式挂载您的分区。请注意mount /挂载您的根分区的简单命令将不起作用,因为/etc/fstab. 因此,如果您//dev/sda1,请运行以下命令:

    mount -t ext4 -o rw,remount /dev/sda1 /
    
    Run Code Online (Sandbox Code Playgroud)
  5. 上面的命令将以/读写模式挂载您的分区。运行以下命令在fstab里面创建一个新文件,/etc其中包含适当的行来挂载您的/. 在上面的例子中,我的/has UUID=52e062e0-716c-4828-9bf1-05b93fdaef93,所以我会运行:

    echo "UUID=52e062e0-716c-4828-9bf1-05b93fdaef93 / ext4 errors=remount-ro 0 1" > /etc/fstab
    
    Run Code Online (Sandbox Code Playgroud)
  6. 从 root shell 退出并启动你的 Ubuntu 操作系统,它肯定会启动。

方法二

通过 Ubuntu 实时磁盘重新创建 /etc/fstab 文件

  1. 启动 ubuntu 实时磁盘。

  2. 运行sudo blkid命令并记下安装的 Ubuntu 分区的设备 ID 和 UUID。

  3. 挂载你的根分区,

     sudo mkdir /media/ubuntu
     sudo mount /dev/sdaX /media/ubuntu
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在进入/media/ubuntuvia nautilus 并fstab在里面创建一个文件/etc

  5. 在该 fstab 文件上,为您的根分区添加一个条目,如下所示。

     UUID=52e062e0-716c-4828-9bf1-05b93fdaef93 / ext4 errors=remount-ro 0 1
    
    Run Code Online (Sandbox Code Playgroud)
  6. 保存该文件。然后启动到您安装的 Ubuntu。

注意:上面给出了我的根分区的 UUID。请给出您的 UUID。在启动到您安装的 Ubuntu 操作系统后,不要忘记fstab为您的交换分区添加条目。

  • 您不需要 chroot 即可执行此操作。你可以在没有它的情况下编写 fstab(只是安装),而且它只会导致更多的问题。我会放弃它。 (2认同)