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

Jef*_*ros 12 permissions hard-drive

我的 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.
Run Code Online (Sandbox Code Playgroud)

我尝试运行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
Run Code Online (Sandbox Code Playgroud)

我尝试了其他 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.
Run Code Online (Sandbox Code Playgroud)

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

输出:

sudo smartctl --all --tolerance=verypermissive /dev/sda
Run Code Online (Sandbox Code Playgroud)

可以在这里找到

怎么回事??

Fab*_*bby 12

这看起来很多喜欢你的文件系统挂载只读之前的驱动器故障...

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

  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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    sudo apt-get install smartmontools
    sudo smartclt --scan
    
    Run Code Online (Sandbox Code Playgroud)
  6. 然后执行:

    sudo smartctl /--test:short dev/XdY
    
    Run Code Online (Sandbox Code Playgroud)

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

那就请回馈吧!

编辑:我很抱歉不得不告诉你你的驱动器已经死了。

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