奇怪的错误,包括所有文件都是只读的

奇怪的错误,包括所有文件都是只读的

我的 Ubuntu 14.04.2 计算机突然开始显示各种严重错误。

这个问题是在我开发 Ruby on Rails 应用时发生的,我暂停了一段时间,然后回来尝试使用 重启服务器rails s。结果出现了以下错误:

Rails Error: Unable to access log file. Please ensure that /home/user/app/log/development.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

我尝试运行chmod 0666 /home/user/app/log/development.log,然后运行其他各种 chmod 命令,例如chmod 0664chmod 777。每次我得到的结果是:

chmod: changing permissions of ‘/home/user/app/log/development.log’: Read-only file system

我尝试了其他 Rails 应用程序,也遇到了同样的错误。然后我尝试使用 Komodo IDE 保存我正在处理的文件并退出,但 Komodo 告诉我该文件是只读的,无法保存。

然后,我注意到我的 Skype 已自动退出,当我尝试重新登录时,它告诉我我已经登录。

于是我重启了电脑。在登录屏幕上,我收到了一条错误消息,内容如下Errors were found when searching directory /. Press f to fix, I to ignore, and M to run a manual reboot.

我按了“I”键忽略并登录。现在我根本无法打开 Skype 或 Komodo。当我单击图标时,它们会闪烁几次,好像它们即将打开,但随后它们就停止闪烁,什么也没发生。

此外,rails s不再返回错误,它实际上只是关闭我的终端窗口。

当我运行时mount,一半的时间终端只是关闭,一半的时间我会收到此消息:

$ mount
/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda1 on /boot/efi type vfat (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=greg)

mount: warning: /etc/mtab is not writable (e.g. read-only filesystem).
   It's possible that information reported by mount(8) is not
   up to date. For actual information about system mount points
   check the /proc/mounts file.

我还注意到我的所有文件上都有一个锁图标。我猜这意味着我的所有文件都是只读的。

输出:

sudo smartctl --all --tolerance=verypermissive /dev/sda

找到这里

发生了什么事?

答案1

这看起来很多就像您的文件系统在驱动器发生故障之前以只读方式安装一样......

所以请停止使用计算机,将其完全关闭并:

  1. 打开电脑并检查硬盘。如果它没有连接到控制器板,则购买一个比当前硬盘更大的新外置硬盘。它连接到其控制器板,然后购买一个新的内部的具有相同连接器类型的硬盘。
  2. 将其插入您的计算机(如果是笔记本电脑,请按照上述步骤购买外置 USB 硬盘)
  3. 启动 Ubuntu Live DVD 并选择Try Ubuntu
  4. Ctrl+ Alt+T进入终端并输入:

    sudo apt-get install gddrescue
    sudo ddrescue --binary-prefixes --cluster-size=64 --sparse --timeout=20s /dev/WdX /dev/YdZ
    

    注意: WX是您几乎损坏的硬盘的驱动器号,而YZ是您新硬盘的驱动器号。

  5. 如果一切顺利且没有任何错误,我们将测试我的直觉是否正确:

    sudo apt-get install smartmontools
    sudo smartclt --scan
    
  6. 然后执行:

    sudo smartctl /--test:short dev/XdY
    

针对扫描期间出现的所有设备。

那么请给予反馈!

编辑:我很遗憾地告诉您,您的驱动器已坏了。

请将外部驱动器与内部驱动器交换,并在新驱动器上重新安装 Ubuntu,而无需连接旧驱动器。然后通过 USB 外壳连接旧驱动器并重试... 也许 (极不可能)您可以通过这种方式恢复更多数据。

相关内容