
我已使用 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