メインのDebianスタビリティシステムでテストリポジトリを有効にせずに自分でDebianテストインストールを実行したいので、systemd-nspawnを理解して使用しようとしました。
Debootstrapプロセスの設定を支援するために、次のシェルスクリプトを作成しました。
#!/bin/sh
dirpath="$1"
if [ -z "$dirpath" ]; then
dirpath="debian-testing-devel"
elif ! [ -d "$dirpath" ]; then
mkdir -p "$dirpath"
fi
echo "NOTICE: You must run `debootstrap` as a root user! Requesting sudo privilage..."
sudo debootstrap --include="dbus,systemd-container" testing "$dirpath" "https://deb.debian.org/debian"
echo "Debootstrap has finished!"
echo "You may log in to your system by using: systemd-nspawn -D ${dirpath} -U --machine debian-testing-devel"
echo "Make sure to set a secure root password!"
基本的にそれはすべてです。私はそれを「debian-testing-devel」と命名しました。それから、「/var/lib/machines/」のコンテンツにのみアクセスできるという事実がすぐにわかりましたので、machinectl
私が作成したディレクトリをそこに移動しました。それでも…
その後、を使用してログインsystemd-nspawn -D /var/lib/machines/debian-testing-devel/ -U --machine debian-testing-devel
し、パスワードを設定し、rootとしてログインできるように、「/etc/securetty」に「pts/0」と「pts/1」を追加する必要がありました。
ログインを使用しようとすると、machinectl login debian-testing-devel
「PTYにログインできません:プロトコルエラー」というメッセージが表示されます。
そのため、コンテナに再度ログインし、systemd-nspawn
何らかの理由でパッケージのインストールが中断されたことを発見してdbus
実行してみると、apt -f install
問題が解決したようです。別のオンラインソースでは、systemd
プロトコルエラーを排除するためにDBusだけでなくコンテナ自体にもインストールする必要があると主張してみました!
最後に再実行しようとすると、machinectl login debian-testing-devel
まだ「PTYにログインできません:...」というメッセージが表示され、今回はFailed to get login PTY: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
。
それで、次に何をすべきかわかりません。この問題をオンラインで検索しても、多くの結果が出ず、何が起こっているのかわかりません。この内容を学び、働かせようとしながら少しイライラしています。私がやろうとしているすべての作業がうまくいかないようです...
助けてくれてありがとう!
答え1
さて、いよいよもう一度ログインできるようになった。私のディレクトリを確認した後、所有したファイルがあり、所有している他のファイルがあることにroot:root
気づきました(random id):(random id)
がdebootstrap
、再構築後にエラーなしで完了したことを確認し、そのフラグを使用してsystemd-nspawn
コマンドを実行してみましたが、-U
かなりよく記録されました。コンテナに初めて遭遇する人のために何が間違っているのかを明確に伝えるより良いエラーメッセージがあったらと思います。数日間、この問題に閉じ込められていて、私のコンテナのディレクトリ/ルートが破損していることを知りませんでした。だからただ…はい、ちょっと良くないと思います。権限のないユーザーを使用することを忘れてしまうと、コンテナフォルダが簡単に破損する可能性があるため、コンテナフォルダのスナップショットとバックアップを必ず撮ってください。こんな。 IMOは、コンテナの安定性と使いやすさがまだ行く方法が長いと考えています。