奇怪的錯誤,包括所有文件都是唯讀的

奇怪的錯誤,包括所有文件都是唯讀的

我的 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.

我強迫我忽略並登入。當我點擊圖示時,它們會閃爍幾次,就像它們即將打開一樣,但隨後它們就停止閃爍,什麼也沒有發生。

另外,,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 外殼連接舊驅動器並重試...也許(極不可能)您可以透過這種方式恢復更多資料。

相關內容