修正 chroot 中反覆出現的「/dev/null:權限被拒絕」問題

修正 chroot 中反覆出現的「/dev/null:權限被拒絕」問題

我已使用 chroot 到外部磁碟sudo chroot /mnt/disk,但幾乎我所做的所有操作(登入、製表符補全、less讀取檔案等)都會導致錯誤提及/dev/null: Permission denied,即使該命令似乎有效。

/dev/null 具有正確的權限(666),並file表示它是一個字元設備,因此它不像任何東西用常規檔案覆蓋它或更改權限。

我可以做什麼來解決這個問題?

以下是製表符補全 (of ls /u) 的結果:

$ ls /ubash: /dev/null: Permission denied
bash: _upvars: `-a2': invalid number specifier
bash: /dev/null: Permission denied
bash: _upvars: `-a0': invalid number specifier

答案1

磁碟可以透過該nodev選項安裝,其mount解釋如下:

不要解釋字元或阻止檔案系統上的特殊設備。

您可以透過檢查輸出來驗證這一點mount 外部chroot:

$ mount
...
/dev/sda1 on /mnt/disk type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

(這是一個特別棘手的問題,因為 chroot 外部的配置正在影響其中程式的行為!)

修復它就像重新安裝一樣簡單,無需nodev選擇。以下命令將完成此操作(即使 chrooted 進程正在運行!),儘管可能有一種方法可以刪除只是nodev選項也沒有刪除所有其他選項:

sudo mount -o remount /dev/sda1 /mnt/disk

相關內容