Toolbox: ホストに一致するように/ mediaと/ mntを設定します

作成日 2019年11月12日  ·  20コメント  ·  ソース: containers/toolbox

今日、突然ツールボックスに入ることができなくなったので、運が悪かったので、 toolbox resettoolbox enterを使用してツールボックスを再作成しようとしました。 toolbox -v enterの出力は次のとおりです。

toolbox: running as real user ID 1000
toolbox: resolved absolute path for /usr/bin/toolbox to /usr/bin/toolbox
toolbox: checking if /etc/subgid and /etc/subuid have entries for user zlopez
toolbox: TOOLBOX_PATH is /usr/bin/toolbox
toolbox: running on a cgroups v2 host
toolbox: current Podman version is 1.6.2
toolbox: migration not needed: Podman version 1.6.2 is unchanged
toolbox: Fedora generational core is f31
toolbox: base image is fedora-toolbox:31
toolbox: container is fedora-toolbox-31
toolbox: checking if container fedora-toolbox-31 exists
toolbox: calling org.freedesktop.Flatpak.SessionHelper.RequestSession
toolbox: starting container fedora-toolbox-31
toolbox: /etc/profile.d/toolbox.sh already mounted in container fedora-toolbox-31
Error: unable to start container "fedora-toolbox-31": creating file '/var/home/zlopez/.local/share/containers/storage/overlay/bcd97a238cf639f8d3dfeef7b5c44b7ad9f4ba99410864856358b26ade201f1e/merged/media': Is a directory: OCI runtime error
toolbox: failed to start container fedora-toolbox-31

最も参考になるコメント

私はそれをcrunで修正するためにPRを開きました。 それまでの間、次の方法で回避できます。

diff --git a/toolbox b/toolbox
index a7433e1..6b443c7 100755
--- a/toolbox
+++ b/toolbox
@@ -987,7 +987,7 @@ create()
     fi

     if [ -d /run/media ] 2>&3; then
-        run_media_path_bind="--volume /run/media:/run/media:rslave"
+        run_media_path_bind="--volume $(readlink -f /run/media):/run/media:rslave"
     fi

     echo "$base_toolbox_command: checking if /usr is mounted read-only or read-write" >&3

全てのコメント20件

Silverblueをアップグレードした後も同じ問題が発生しました。 これらは、アップグレードに含まれるパッケージでした。 ロールバック後に修正されました。

       Upgraded: crun 0.10.2-1.fc31 -> 0.10.5-2.fc31
                 kernel 5.3.8-300.fc31 -> 5.3.9-300.fc31
                 kernel-core 5.3.8-300.fc31 -> 5.3.9-300.fc31
                 kernel-devel 5.3.8-300.fc31 -> 5.3.9-300.fc31
                 kernel-modules 5.3.8-300.fc31 -> 5.3.9-300.fc31
                 kernel-modules-extra 5.3.8-300.fc31 -> 5.3.9-300.fc31

おそらく、 crun新しいバージョンがこれを引き起こしました。

テストに使用する古い予備のラップトップがあります。 SilverblueRawhideを実行しています。 Toolboxは最新のアップデート(Rawhide.20191107.n.1)で作業していますが、F31バージョンの間にあります: crun-0.10.4-1.fc32.x86_64

したがって、 0.10.4から0.10.5の間で何かが壊れたようです。 うまくいけば、これが問題を切り分けて、crunまたはpodmanで修正するか、ツールボックスで回避または適応するのに役立ちます。

しかし、私は生皮でpodmanがバージョンであることに注意してください1.6.3-0.34.dev.git1e750f7.fc32.x86_64 、ないpodman-1.6.2-2.fc31.x86_64

一方、ツールボックスはすべての場所で同じバージョン、 toolbox-0.0.16-1.fc31.noarch (またはrawhideではtoolbox-0.0.16-1.fc32.noarch )にあります。

ホストからのstat /mediaの出力を共有していただけませんか?

私はそれをcrunで修正するためにPRを開きました。 それまでの間、次の方法で回避できます。

diff --git a/toolbox b/toolbox
index a7433e1..6b443c7 100755
--- a/toolbox
+++ b/toolbox
@@ -987,7 +987,7 @@ create()
     fi

     if [ -d /run/media ] 2>&3; then
-        run_media_path_bind="--volume /run/media:/run/media:rslave"
+        run_media_path_bind="--volume $(readlink -f /run/media):/run/media:rslave"
     fi

     echo "$base_toolbox_command: checking if /usr is mounted read-only or read-write" >&3

迅速な修正をありがとう、@ giuseppe !!

/ mntでも同様の問題が発生しています

Error: unable to start container "fedora-toolbox-31": creating file '/var/home/pluto/.local/share/containers/storage/overlay/e56a2816dbb492d3446030ba65d10d659ee6dd621dbaf76e20290f59ad4f35af/merged/mnt': Is a directory: OCI runtime error

ツールボックス内の/ mntおよび/ run / mediaへのすべての参照を削除したところ、一時的に問題が解決しました。

@ p1u3o私の修正があなたの問題に対処していることを確認するために、 stat /mnt出力を見せてくれませんか?

@giuseppe同じ問題が発生しています。 stat /mntの出力は次のとおりです。
File: /mnt -> var/mnt
Size: 7 Blocks: 0 IO Block: 4096 symbolic link
Device: fd01h/64769d Inode: 2621481 Links: 5
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:mnt_t:s0
Access: 2019-11-13 08:18:38.666995206 -0500
Modify: 2019-11-12 13:51:35.169000757 -0500
Change: 2019-11-13 06:09:45.432966095 -0500
Birth: 2019-11-12 13:51:35.169000757 -0500

それが助けになるなら、私はSELinuxを許容として設定したXFSを使用しています。

File: /mnt -> var/mnt
  Size: 7           Blocks: 0          IO Block: 4096   symbolic link
Device: 822h/2082d  Inode: 134217875   Links: 4
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:mnt_t:s0
Access: 2019-11-13 09:13:30.879734789 +0000
Modify: 2019-11-11 09:36:01.148936755 +0000
Change: 2019-11-13 09:12:15.780417160 +0000
 Birth: 2019-11-11 09:36:01.148936755 +0000

ここでも同じ問題があります。
コンテナのレクリエーション後もまだ入ることができません。
File: /mnt -> var/mnt Size: 7 Blocks: 0 IO Block: 4096 symbolic link Device: fd00h/64768d Inode: 655408 Links: 4 Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:mnt_t:s0 Access: 2019-11-13 20:58:21.899394135 +0200 Modify: 2019-10-19 12:03:46.378316430 +0300 Change: 2019-11-13 19:37:41.427229814 +0200 Birth: 2019-10-19 12:03:46.378316430 +0300

最新のアップデートを使用してSB31のcrunをダウングレードすると、ツールボックスコンテナが機能することを確認できます。 「31.20191115.0(2019-11-15T01:59:08Z)」を実行し、次の手順を実行しました。

  1. crun-0.10.4-1.fc31をダウンロードします(https://kojipkgs.fedoraproject.org//packages/crun/0.10.4/1.fc31/x86_64/crun-0.10.4-1.fc31.x86_64.rpm)
  2. rpm-ostree override replace〜 / Downloads / crun-0.10.4-1.fc31.x86_64.rpm
  3. systemctlreboot

たぶん、これは、ツールボックスコンテナを操作せずに、メインデスクトップとしてSBで作業を行わない人にとって役立つでしょう。

この方向を示した@garrettのこの投稿を見つけてよかったですhttps://discussion.fedoraproject.org/t/toolbox-broken-again-crun-update-in-31-20191112-0/11369/8

@stephanmolありがとう、ツールボックスが再び機能するようになりました。

数日後、ツールボックスは再び壊れています。
この情報https://github.com/containers/libpod/issues/4024によると、問題はcrun-0.10.6-1.fc3で修正されているよう
この問題を修正するには、上記の@stephanmolと同様の手順を実行します。

  • crun-0.10.6-1.fc3をダウンロードします(https://kojipkgs.fedoraproject.org//packages/crun/0.10.6/1.fc31/x86_64/crun-0.10.6-1.fc31.x86_64.rpm)

  • rpm-ostree override replace〜 / Downloads / crun-0.10.6-1.fc31.x86_64.rpm

  • systemctlreboot

@aaronuurman crun-0.10.6-1.fc31.x86_64は昨日の時点でSilverblueです。 もうオーバーライドする必要はありません。

ツールボックス(およびpodmanとcrun)のおかげで、今まさにSilverblueのコンテナーで作業を行うことができます。 うまくいけば、 rpm-ostree update (および再起動)後にすべてが再び機能しますか?

rpm-ostree upgradeを実行した後もオーバーライドがそのまま残っている場合は、手動でrpm-ostree override reset crunを実行する必要があり、問題を修正する最新バージョンのcrunを使用するようになりました(イェーイ!)

これを整理してくれてありがとう、 @ giuseppe

rpm-ostreeのアップグレード後もオーバーライドは
ご指摘いただきありがとうございます:+1:

FWIW、 rpm-ostree override reset -a 、_any_オーバーライドがないことを確認するために再起動しました。 (crunまたはcrun-0.10.6だけを指定しても機能しませんでした。ただし、すべてをリセットすると機能しました。)

crunオーバーライドは表示されませんでしたが、現在Silverblueで出荷されているものと同じバージョンであるため、透過的に表示されないようにしたかったのです。 (私は将来、いくつかの驚きを持ちたくありません。:wink :)

この問題を再利用して、 /mnt/media処理を改善し、短期的にはもう少し堅牢にします。 /homeについても同じことをすでに行っています。

このページは役に立ちましたか?
0 / 5 - 0 評価