web-dev-qa-db-ja.com

ChrootにXserverを提供する

説明:

Lubuntu 13.10 X86-64 livecdを使用して、chrootというフォルダーのハードドライブにある別のLubuntu 13.10 X86-64にchrootします。ターミナルを使用してchrootするのに問題はなく、livecdで「xhost +」を使用した後、chrootから現在のxserverでguiアプリケーションを起動できますが、chrootに独自のX出力を提供する必要があります。グーグルで検索して、askubuntuを検索し、太陽と月の下ですべてのコマンドを入力しましたが、まったく役に立ちませんでした。私は解決策が欲しいのですが、もしあなたがそれを持っているなら、推測でさえ幸せです。 chrootをバックアップしたので、混乱した場合に復元できます。また、Xnestを使用してみましたが、動作しません。可能であれば、特定のユーザーとしてログインして、chrootでlxdeデスクトップ環境を実行したいと思います。

詳細:

以下は、chrootを開始するために使用したコマンドです。

Sudo mount --bind /dev /media/lubuntu/os/chroot/dev

Sudo mount --bind /proc /media/lubuntu/os/chroot/proc

Sudo mount --bind /sys /media/lubuntu/os/chroot/sys

Sudo cp /etc/resolv.conf /media/lubuntu/os/chroot/etc/resolv.conf

xhost +

Sudo chroot /media/lubuntu/os/chroot

また、chrootに「export DISPLAY =:0.0」と入力していましたが、それなしでも機能しました。

試験結果:

テスト#1:

説明:

すべての出力(control + alt + Fkeys)で黒い画面が表示され、何も入力できません。私は手でコンピューターを殺さざるを得ません。

詳細:

Chrootターミナルタイプ

export DISPLAY=localhost:1

Chrootターミナルタイプ

startx -- :1

テスト#2:

説明:

F1の黒い画面が表示され、「control + alt + F7」を押すと、通常のデスクトップに戻ります。黒い画面に何も入力できません。 F7のchrootターミナルで「gksu leafpad」と入力すると、「display localhost:1を開けません」というエラーが表示されます。 F1に切り替えると、chrootではなくlivecdのターミナルプロンプトが表示されます。

詳細:

Chrootターミナルタイプ

export DISPLAY=localhost:1

Livecdターミナルタイプ

Sudo startx -- :1

テスト#3:[編集済み]

説明:

Xnestの場合と同じように、空白の黒いウィンドウが表示されます。 xtermを起動しようとすると、「ホスト名lubuntuを解決できませんでした:名前またはサービスが不明です」というエラーが表示されます。また、chrootおよびlivecdに「openssh-server」をインストールしようとしました。 livecdでのみ同じコマンドを使用し、livecdからxtermを起動しようとすると、同じエラーは発生しません。代わりに、パスワードプロンプトが表示されます。 livecdユーザー「lubuntu」にはパスワードがありません。パスワードを空白のままにすると、「許可が拒否されました。ユーザーアカウントを作成して再試行すると、正しいユーザーパスワードを入力するときに「許可が拒否されました。もう一度やり直してください。」 chrootでapt-getを使用するときにもchrootが発生しますが、私はaptからインストールできます。

詳細:

Livecdターミナルタイプ

Xephyr -ac -screen 1024x768 -br -reset -terminate 2> /dev/null :1 &

Chrootターミナルタイプ

DISPLAY=:1.0

また、livecdターミナルで「DISPLAY =:1.0」を試しました。

Chrootターミナルタイプ

ssh -XfC -c blowfish root@lubuntu xterm

また、chrootターミナルで「user @ server」と「root @ localhost」を試しました。

追加情報

他に知りたいことはありますか?ここに追加してみます。

3

Xephyrを使用する

Sudo apt-get install xserver-xephyr

Xephyrを開始

Xephyr -ac -screen 1280x1024 -br -reset -terminate 2> /dev/null :1 &

":1" =ディスプレイ(ディスプレイには0から始まる番号が付けられます)

-ac =アクセス制御制限を無効にする= Xの転送を許可する

-screen 1280x1024 =画面サイズ

-br =黒の背景

-reset -terminate = Xephyrは、最後のXクライアントが強制終了されたときに自動的に閉じる必要があり、常に機能するとは限りません。

2>/dev/nullはエラーメッセージをリダイレクトします。

ディスプレイの設定(Xの場合)

DISPLAY=:1.0

chrootにssh(sshサーバーのインストールが必要な場合があります。LXCを確認することもできます)

ssh -XfC -c blowfish user@server xterm

または、他の任意のグラフィカルツールを使用します。

こちらもご覧ください

http://ubuntuforums.org/showthread.php?t=6200

https://help.ubuntu.com/lts/serverguide/lxc.html

2
Panther