debootstrap
インストールイメージを実行し、ファイルをいくつか変更し、ファイルがサポートしているディスクイメージにファイルをコピーしてインストールイメージを準備するスクリプトがあります。
これはうまくいきますが、実際には特権リソースを必要としないので、権限なしでスクリプトを実行root
できるようにしたいです。私は以下を使ってスクリプト全体をroot
実行すると思いました。fakeroot
debootstrap
W: Failure trying to run: chroot /tmp/tmp..... mount -t proc proc /proc
この問題を解決する方法はありますか?
答え1
一般的に言えば、はいdebootstrap
、を介してroot以外のユーザーとして実行できますが、fakeroot
詳細があります。
あなたが経験している即時の問題は、chroot
rootではなくユーザーとして使用しようとすることです。fakechroot
代わりに、以下を除外しますfakeroot
。
fakechroot fakeroot debootstrap sid /tmp/sid
後で発生する可能性のある問題には、root以外のユーザーとしてループバックインストールを作成すること、またはディスクイメージパーティションテーブルを作成することが含まれます。
これらすべての詳細を1つずつ処理するのではなく、次のdebootstrapバリアントを使用する方が簡単です。マルチベルト、いつか欲しい場合は、クロスコンパイル(x86-64でarmhfイメージを生成するなど)も処理できます。
答え2
--variant=fakechroot
debootstrapには、必要な操作を正確に実行するオプションがあります(参照文書)。
答え3
これchroot(2)システムコールにはroot権限、より正確には技術的
CAP_SYS_CHROOT
能力が必要です(参照:能力(7))
だからあなたはそれを使用することはできませんfakeroot
(あなたも必要ですfakechroot
など)。