Package-Management

WSL 2 輸入/輸出錯誤

  • July 15, 2021

背景

我正在下載 cuda-toolkit-10-1,遵循https://docs.nvidia.com/cuda/wsl-user-guide/index.html中的指南,包括將我的 WSL 從版本 1 更新到 2。接近尾聲我的安裝通過apt-get install當我的記憶體可能在解壓時出現錯誤消息時耗盡: dpkg: error processing archive /tmp/<cuda_vers>.deb: error setting permissions of <file.so>: Read-only file system帶有錯誤程式碼(2)。

我釋放了一些記憶體並嘗試通過 apt-get 重新安裝,但出現錯誤消息dpkg was interrupted, you must manually run 'sudo dpkg --configure -a to correct the problem,我嘗試失敗dpkg: error: unable toa ccess dpkg status area: Read-only file system

問題

我現在無法執行大多數命令。以下是一些與它們各自的錯誤消息 ls: -bash: /bin/ls: Input/output error df -u:Sorry, command-not-found has crashed! Please file a bug report..., Python version: ...

請讓我知道我可以做些什麼來解決此問題,或者需要哪些其他資訊。

通常,文本“輸入/輸出錯誤”表示發生了EIO錯誤。這通常表明磁碟或文件系統有問題。在您的情況下,它可能是 WSL 的模擬文件系統,也可能是您的實際硬碟。這得到了“只讀文件系統”這一事實的支持,因為 ext4 僅在檢測到完整性問題時才會以只讀方式掛載您的文件系統。

我首先在您的系統上執行磁碟檢查,以確保您的實際硬碟正常。如果是這樣,您將希望sudo e2fsck -p在您的驅動器上執行,並且您還需要指定設備。您可以通過執行sudo dmesg -n並查找設備(例如,如果您看到sda有 I/O 錯誤,則使用/dev/sda)或通過執行sudo file -sL /dev/sd*並查找指定了 ext4 文件系統的設備來查找設備。

如果您的系統損壞到無法找到設備或無法執行e2fsck,則需要重新安裝 WSL 系統。

想幫助最初的提問者為時已晚,但我今天遇到了同樣的問題,在對其進行故障排除時發現了這個問題,並且確實設法修復了我的 WSL 安裝,所以我想我會為找到此頁面的其他人留下一些說明.

通常,當您在其上儲存越來越多的數據時,WSL 使用的虛擬硬碟 (VHD) 會自動調整大小。但是,如果您的 Windows 電腦空間不足,它將停止增長(這就是發生在我身上的事情),即使您確實有可用空間,它本身也不會增長到超過 256 GB。

  • 如果您的實際硬碟空間不足:釋放 Windows 中的一些空間,然後打開 PowerShell 並執行wsl --shutdown以強制 WSL 重新啟動。(預設情況下,即使您關閉了所有終端視窗,WSL 仍會在後台執行,因此您必須手動執行此操作。)下次打開 WSL 終端時,VHD 應該會自動增長,您應該能夠再次正常訪問文件系統。
  • 如果您的實際硬碟驅動器上有空間但已達到 VHD 的 256 GB 限制,則可以按照 WSL 文件中的這些說明手動調整圖像大小,然後重新啟動 WSL。

在此之後執行可能是一個好主意e2fsck。(在我的情況下,它沒有報告任何錯誤,但最好是為了安全起見。)

引用自:https://unix.stackexchange.com/questions/625049