
で外部ディスクに chroot しましたが、コマンドが機能しているように見えても、sudo chroot /mnt/disk
実行するほとんどすべての操作 (ログイン、タブ補完、less
ファイルの など) で に関するエラーが発生します。/dev/null: Permission denied
/dev/null には正しい権限 (666) があり、file
キャラクター デバイスであると表示されるため、通常のファイルで上書きされたり、権限が変更されたりすることはありません。
これを修正するにはどうすればいいでしょうか?
タブ補完 (の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 外部の設定が chroot 内部のプログラムの動作に影響を与えるため、これは特に見つけにくい問題です!)
これを修正するには、オプションなしで再マウントするだけですnodev
。次のコマンドでこれを実行できます(chrootプロセスが実行中でも!)。ただし、おそらく削除する方法もあります。ただnodev
他のオプションもすべて削除せずにこのオプションを選択します。
sudo mount -o remount /dev/sda1 /mnt/disk