
Ich habe mit auf eine externe Festplatte chrootet sudo chroot /mnt/disk
, aber fast alles, was ich mache (Anmelden, Tab-Vervollständigung, less
ing einer Datei, ...), führt zu einem Fehler, der erwähnt /dev/null: Permission denied
, selbst wenn der Befehl zu funktionieren scheint.
/dev/null verfügt über die richtigen Berechtigungen (666) und file
gibt an, dass es sich um ein Zeichengerät handelt. Es ist also nicht so, dass es durch eine normale Datei überschrieben oder die Berechtigungen geändert worden wären.
Was kann ich tun, um das Problem zu beheben?
Das ist das Ergebnis der Tab-Vervollständigung 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
Antwort1
nodev
Die Festplatte kann mit der Option gemountet werden , die mount
Folgendes interpretiert:
Interpretieren Sie keine Zeichen- oder Block-Sondergeräte im Dateisystem.
Sie können dies überprüfen, indem Sie die Ausgabe vonmount
draußendie Chroot:
$ mount
...
/dev/sda1 on /mnt/disk type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
(Das ist ein besonders schwieriges Problem, da die Konfiguration außerhalb des Chroots das Verhalten der darin enthaltenen Programme beeinflusst!)
Das Problem lässt sich ganz einfach beheben, indem man es ohne die nodev
Option neu einbindet. Der folgende Befehl erledigt dies (sogar während der chroot-Prozess läuft!), obwohl es wahrscheinlich einen Weg gibt, derNurdie nodev
Option, ohne auch alle anderen Optionen zu entfernen:
sudo mount -o remount /dev/sda1 /mnt/disk