我确实需要一些帮助,我是 Ubuntu 新手,我认为我真的把事情搞砸了。
我正在运行 Ubuntu Desktop 16.04.2 LTS,我想在启动时安装两个额外的硬盘。
我以 root 身份编辑了 /etc/fstab 文件以包含这两个驱动器。
/etc/fstab 文件的每一行都以 # 符号开头,所以我相信这只是示例文件。我按照几个不同社区网站上的说明添加了两行,如下所示:
/dev/sda1 /media/Seagate drive 1 auto,defaults,user,dmask=027,fmask=137 0 0
/dev/sda2 /media/Seagate drive 2 auto,defaults,user,dmask=027,fmask=137 0 0
我知道那不是我添加的确切内容,但我无法获取正确的信息添加到此帖子中,因为我保存了有关现在无法启动的机器的所有信息。我知道这很愚蠢!
然后我重新启动了。
现在我的系统无法启动到桌面,而是停在 root@craig-PE-T130:~#
有没有什么方法可以从 root@craig-PE-T130:~# 编辑 /etc/fstab 文件,删除我添加的行,以便我的系统启动时进入桌面?
我将真诚地感谢您提供的任何帮助。
编辑更新 5/17/2017
我能够使用试用版 Ubuntu 从安装 CD 启动。然后,我找到了我编辑过的 /etc/fstab 文件,如下所示:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=99ee9dc0-671d-4a5c-a563-7dacaa7ebffb /boot ext2 defaults 0 2
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
/dev/sdc2 /media/harddrives/seagate1 auto user,fmask=0111,dmask=0000 0 0
/dev/sdd2 /media/harddrives/seagate2 auto user,fmask=0111,dmask=0000 0 0
正如您所看到的,我添加到 fstab 文件中的两行并不像我之前所说的那样,因为我是根据我的记忆添加到这篇文章中的,这不是很好。
我现在有以下问题:
从我向 fstab 文件中添加的两行内容可以确定这是否会导致我的系统在启动过程中停止在 root@craig-PE-T130:~# 吗?
接下来,由于我只能在试用模式下打开 Ubuntu 桌面,我无法编辑和保存 /etc/fstab 文件,因为我没有权限。如何更改我的权限以允许我在试用 Ubuntu 时编辑文件?
当我尝试在尝试模式下使用 gedit 打开 /etc/fstab 文件时,我看到的标头信息如下:
*fstab [Read-Only] (491 GB Volume /media/ubuntu/0823c4f5-e42b-45ee-97b8-ad5d424b8b8d/etc) -gedit
我非常感谢大家迄今为止提供的所有帮助,我相信只要大家提供一点建议,我就能解决这个问题。
谢谢你!
编辑更新 2017/5/20
下面是对steeldriver的问题的回答——mount | grep '^/' 的结果是什么?
root@ubuntu:~# mount | grep '^/'
/dev/sr0 on /cdrom type iso9660 (ro,noatime)
/dev/loop0 on /rofs type squashfs (ro,noatime)
/cow on / type overlay (rw,relatime,lowerdir=//filesystem.squashfs,upperdir=/cow/upper,workdir=/cow/work)
/dev/mapper/ubuntu--vg-root on /media/ubuntu/0823c4f5-e42b-45ee-97b8-ad5d424b8b8d type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
/dev/sda1 on /media/ubuntu/99ee9dc0-671d-4a5c-a563-7dacaa7ebffb type ext2 (rw,nosuid,nodev,relatime,block_validity,barrier,user_xattr,acl,stripe=4,uhelper=udisks2)
/dev/sdc2 on /media/ubuntu/Seagate D1 type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
/dev/sdd2 on /media/ubuntu/Seagate D2 type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
接下来,我尝试了 Organic Marble 回答我的问题时留下的修复方法(感谢 Organic Marble),但遇到了一个问题。
首先我运行 $ sudo lshw -C disk
*-disk
description: ATA Disk
product: TOSHIBA DT01ACA0
vendor: Toshiba
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: A810
serial: Y6CR9KSKS
size: 465GiB (500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=319f2eb8
我相信这证实了我需要挂载 /dev/sda,这就是我遇到问题的地方,如下所示。
ubuntu@ubuntu:~$ sudo mount /dev/sda
mount: can't find /dev/sda in /etc/fstab
ubuntu@ubuntu:~$
好吧,我想我应该看到 /dev/sda 不在 /etc/fstab 文件中,正如我昨天编辑时所列出的。我相信这回答了我于 2017 年 5 月 17 日发布的第一个问题:
从我向 fstab 文件中添加的两行内容可以确定这是否会导致我的系统在启动过程中停止在 root@craig-PE-T130:~# 吗?
回答 ?: 我认为我的系统现在在启动过程中停止在 root@craig-PE-T130:~#,因为 /dev/sda 不包含在 /etc/fstab 文件中?
现在我只剩下第二个问题:
- 由于 /etc/fstab 文件中不包含 /dev/sda,并且我只能在试用模式下打开 Ubuntu 桌面,因此我无法编辑和保存 /etc/fstab 文件,因为我没有权限。如何更改我的权限以允许我在试用 Ubuntu 时编辑文件?
再次感谢大家迄今为止的帮助,但是,我需要一个答案,如何更改我的权限以允许我在尝试 Ubuntu 模式下编辑文件?
我认为如果我能弄清楚如何改变我的权限,然后在 /etc/fstab 文件中添加 /dev/sda,它应该可以解决启动问题?
有人能告诉我如何更改我的权限以允许我从活动磁盘/棒启动后在 root 中编辑 /etc/fstab 文件吗?
编辑更新 2017/5/22
问题解决了
我最终能够通过使用 sudo mount /dev/mapper/ubuntu--vg-root /mnt 挂载分区来编辑和保存 /etc/fstab 文件
root@ubuntu:~# sudo lsblk -o model,size,name,fstype,label,mountpoint
MODEL SIZE NAME FSTYPE LABEL MOUNTPOINT
TOSHIBA 465.8G sda
487M ├─sda1 ext2 /media/ubuntu/99ee9dc0-67
1K ├─sda2
465.3G └─sda5 LVM2_me
457.3G ├─ubuntu--vg-root
│ ext4 /media/ubuntu/0823c4f5-e4
8G └─ubuntu--vg-swap_1
swap
这样我就可以正常启动了。我仍然需要正确编辑 /etc/fstab 文件以在启动时安装两个额外的硬盘,但如果我需要更多帮助,我会在另一个问题中解决这个问题。
非常感谢大家的帮助!
答案1
- 使用实时 USB 启动系统
- 使用磁盘确定系统分区的名称(可能
sda1
) - 打开终端窗口
- 通过输入命令来挂载系统分区
sudo mount /dev/sd__ /mnt
,其中 sd___ 是 sda1 或系统分区 - 使用 nano 编辑器修复 fstab
sudo nano /mnt/etc/fstab
。可能只需删除您添加的行,或者执行任何您需要的操作来撤消更改 - 重启
答案2
您可能会发现从实时磁盘/棒启动最容易。您可能使用一个来安装 Ubuntu。它还在吗?然后只需使用文件浏览器以 root 身份导航到 /etc/fstab,将其重命名为 fstab-that-I-messed-up,然后将编辑之前所做的备份重命名为 fstab 并重新启动到硬盘驱动器。如果您在编辑时没有故意进行备份,则可能仍会有一个文件名末尾带有“~”的备份,具体取决于您使用的编辑器。如果没有备份,或者由于您多次编辑备份而导致备份本身已损坏,并且在您上次编辑之前它已经搞砸了,那么使用搜索引擎查找模型 fstab 并研究 man fstab 以根据需要进行编辑。如果您搞砸了,只需再次进行编辑,直到您做对为止。如果您确定搞砸了 fstab 是唯一的错误,那么应该很容易修复。在您修复它之前,我不会在该系统上做任何其他事情,尤其是不会升级。
顺便说一句,密切关注 Steeldriver。他是个老手,他真的懂他的……嗯,钢铁。我看到 Oldfred 加入了我们。他是一位真正的大师。
@steeldriver 嗨 - 我在另一个论坛认识你。希望一切顺利。
@oldfred 同上。很高兴再次见到你。
答案3
2022 年 6 月 22.04 LTS 更新:
引用这个被接受的答案来自@Organic Marble 我在更现代的系统上定位和编辑 fstab 文件时遇到了问题,因此我按照以下步骤来定位该文件。
Disks
按照概述打开并复制Partition 2
内容字段(在本例中为“/media/ubuntu/cd
然后到复制的目录cd etc
less fstab
确保文件正确sudo nano fstab
编辑文件(并删除/编辑有问题的行)- Ctrl o写出更改并Ctrl x退出文件
- 重启,系统恢复到之前的状态