私が走るときchroot /somepath /usr/bin/startx
evdevの問題のように見えるものがあります...(正しく-バインドマウントされた/ dev// dev/pts/dev/shm/proc/sys/tmp)
画面が表示され、プログラムは正常に実行されますが、マウスもキーボードも使用できず、ローカル端末に切り替えることができず、ハードリブートが必要になります。
これの原因は何ですか?
サーバーを実行することで先に進むための解決策はありますか?
再現するための可能なステップ(すべてのディストリビューションで作業):
linuxディストリビューションのルートディレクトリを、ディストリビューションを実行しているフォルダにコピーします。
すべてを正しくバインドマウント(/ dev/pts/var/run/dev/shm/sys/kernel/debugfs ...)
chroot
commandでシェルを実行します。
X11サーバーがすでに実行されていないことを確認してからlaunchxinit /usr/bin/some X11 program
これで、コンピューターをハードリブートできます。 (リモートアクセスを設定しなかった場合)
この質問は古いと思いますが、参考までに:
画面が表示され、プログラムは正常に実行されますが、マウスもキーボードも使用できず、ローカル端末に切り替えることができず、ハードリブートが必要になります。
私は正しく--bindマウントされた/ dev// dev/pts/dev/shm/proc/sys/tmp
上記をマウントすることに加えて、マウスとキーボードを動作させるために bind mount/run/udevもしなければなりませんでした私のchroot。私はnotxorg.conf
*を使用しましたが、Xorgは私の設定を正しく検出できました。
私の/etc/schroot/default/fstab
のエントリ:
/run/udev /run/udev none rw,bind 0 0
標準のchrootを実行している場合は、代わりに/etc/fstab
に配置できます。
/run/udev /path/to/chroot/run/udev none rw,bind 0 0
...またはmount --bind
それ。
*まあ-最初はxorg.conf
を使ってみましたが、うまくいきませんでした。私も追加してみました
xorg.confのSection "ServerFlags" Option "AutoAddDevices" "false" EndSection
。これにより、マウスは機能しましたが、キーボードは機能しませんでした。
Gentoo wikiに、必要な手順を詳しく説明した記事があります。
HOWTO_startx_in_a_chroot 。
この記事では、最初にchrootを設定する方法、次にchrootを入力してメインシステムを設定する方法について詳しく説明しています。
別のそのような記事はArchLinuxから来ています:
chrootからのグラフィカルアプリケーションの実行 。
Ubuntuの詳細:
chroot内のグラフィカルアプリケーションへのアクセス
サウンドとX11を使用してchrootジェイルを作成する
KDEの場合: Kde4schroot 。それが要求されているものなので、ここにいくつかの詳細があります:
/etc/schroot/schroot.conf
を:に置き換えます
# schroot chroot definitions.
# See schroot.conf(5) for complete documentation of the file format.
#
# Please take note that you should not add untrusted users to
# root-groups, because they will essentially have full root access
# to your system. They will only have root access inside the chroot,
# but that's enough to cause malicious damage.
#
[experimental]
type=directory
description=Debian experimental (unstable)
priority=4
groups=sbuild,root
users=kde4
#root-groups=root,sbuild
aliases=unstable,default
#device=/dev/hda_vg/experimental_chroot
mount-options=-o atime,sync,user_xattr
location=/home/chroot
run-setup-scripts=true
run-exec-scripts=true
次に、/etc/schroot/mount-defaults
を置き換えます:
# mount.defaults: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev /dev none rw,bind 0 0
/dev/pts /dev/pts none rw,bind 0 0
tmpfs /dev/shm tmpfs defaults 0 0
/home /home none rw,bind 0 0
/tmp /tmp none rw,bind 0 0
Kde4ユーザーに切り替えます:
su - kde4
次に、schrootしてrootpasswdと入力します。
schroot -u root
Lennyと実験的なリポジトリを/etc/apt/sources.listに追加します。
echo "deb http://ftp.us.debian.org/debian experimental main non-free contrib" >> /etc/apt/sources.list
echo "deb http://ftp.us.debian.org/debian lenny main" >> /etc/apt/sources.list
/etc/apt/preferences
を編集し、以下を追加して、固定を設定します。
Package: *
Pin: release a=experimental
Pin-Priority: 800
Package: *
Pin: release a=unstable
Pin-Priority: 400
Package: *
Pin: release a=lenny
Pin-Priority: 200
次に、updateを実行してkde4をインストールします。
aptitude update && aptitude install -t experimental kde4 xorg
Kdmをインストールします。
aptitude install -t experimental kdm
次に、/ etc/kde4/kdm/kdmrcを編集し、StaticServersとReserveServersを変更します。
StaticServers=:1
ReserveServers=:2,:3
または、gdmを使用します(DISPLAY:0がすでに使用されている場合、gdmは別のディスプレイを使用するように要求します。
aptitude install gdm
完全なkde4セッションを実行するには、現在のXセッションの外部にあるテキスト仮想端末(vt)、たとえばvt2(ctrl-alt-F2)に移動します。完全なkde4セッションにログインするには、以下を実行します。
su - kde4
schroot
su (use root passwd here)
invoke-rc.d kdm start
これで、kdmが表示され、kde4からkde4としてログインできるようになります。
詳細については、上記の記事を参照してください。