最新記事

Dockerコンテナのファイルシステムを調べる 質問する
linux
docker
filesystems

Dockerコンテナのファイルシステムを調べる 質問する

Docker では、コンテナ内で何が起こっているのか、またはそこにどのようなファイルが存在するのかを理解する必要があることに気付きました。1 つの例は、Docker インデックスからイメージをダウンロードすることです。イメージに何が含まれているのかがわからないため、アプリケーションを起動することはできません。 理想的なのは、それらに SSH または同等の方法で接続できることです。これを行うツールはありますか、それとも、これが可能であるはずだと考えるのは、Docker の概念化が間違っているのでしょうか。

Admin

システムクラッシュが発生した場合は、緊急にグラブ修理が必要です。
rhel
filesystems
grub2
disk

システムクラッシュが発生した場合は、緊急にグラブ修理が必要です。

問題が発生したシステムに関する基本情報: オペレーティングシステムは、VMware17仮想マシンで実行されるRHEL9.2です。 ハードドライブのフルサイズは40gです。私のハードドライブはMBRパーティションフォーマットを採用しており、それぞれサイズ500m、20g、2gのnvme0n1p1〜p3があります。 /bootはnvme0n1p1にインストールされ、/はnvme0n1p2にインストールされ、/swapはnvme0n1p3にインストールされます。 問題の背景:私の目的は/ bootの容量を拡張することです。以前にカーネルをアップグレードしたため、/bootの下のnvme0n1p1パーティションはほぼいっぱいで9メートルしか残りませんでした。 問題が発生する方法: 以下のすべてのフォーマット操作はファイルシステムxfsを選択します。私が使用した方法では、拡張パーティションを作成し、その上に1.5gのサイズの論理パーティションを作成し、フォーマットを実行し、/ bootの下のすべてのエントリを圧縮して/ boot_oldに入れて、/ nvme0n1p1パーティションmkfsをフォーマットしました。ユーティリティ(ソースデータの削除)とumountコマンドを使用して/ bootをマウント解除します。 /boot、その後1.5g論理パーティションを/bootにマウントし、fdiskを使用してnvme0n1p1パーティションを削除し、論理パーティションにマウントされた/bootに/boot_oldのzipを解凍し、システムを再起動して発見しました。システムは正常に起動しません。エラー図は次のとおりです。今どうすればいいですか? 次の図は、システム起動後に grub コマンドラインを入力すると何が起こるかを示しています。

Admin

再帰シンボリックリンクチェーンの深さを制限するものは何ですか?
filesystems
symlink

再帰シンボリックリンクチェーンの深さを制限するものは何ですか?

好奇心で次のコマンドを実行しました。 mkdir haha cd haha ln -s ../haha haha これにより、次のような再帰構造が生成されます。 ┌────────┐ V │ haha/ │ haha/────┘ 私はどのくらいの距離に行くことができるかを知りたかったので、入力して押したcd haha/ままTabbashに複数のhaha/sを自動補完させました。最も多くの部分cd haha/haha//haha/(合計40 "ハハ/")を自動補完し、突然完了を停止します(異常動作#1)。私はを押したEnter。それを実行した後、pwd私は実際にそのディレクトリ/home/me/haha//haha/haha(41 "haha /"s)にあることがわかりました。私はこのディレクトリで別のディレクトリを実行cd hahaしました/home/me/haha。pwdああ?なぜこれが起こるのですか? bashの特徴ですか?ファイルシステムの制限(btrfsを使用しています)?他にはありませんか?

Admin

df、lsblk、baobab間でディスク使用量レポートが大きく異なるのはなぜですか?
filesystems
partition
disk-usage
root-filesystem

df、lsblk、baobab間でディスク使用量レポートが大きく異なるのはなぜですか?

ディスク使用量アナライザ(baobab)はルートパーティションのサイズを29.3 GBと報告し、そのうち2.5 GBは空き容量です。 ただし、詳細な調査のためにデバイスを選択すると、7.9 GBの保存データのみが表示されます。 さまざまなディスク使用ツール間にはより多くの不一致があります。 > df -h Filesystem Size Used Avail Use% Mounted on udev 7.7G 0 7.7G 0% /dev tmpfs 1.6G 2.2M 1.6G 1% /run /dev/nvme0n1p2 28G 26G 940M 97% / # <- ~30GB root partition tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 5.0M 8.0K 5.0M 1% /run/lock /dev/nvme0n1p4 440G 171G 248G 41% /home /dev/nvme0n1p1 96M 50M 47M 52% /boot/efi tmpfs 1.6G 2.5M 1.6G 1% /run/user/1000 > lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 vfat FAT32 14EC-1EA1 46.1M 52% /boot/efi ├─nvme0n1p2 ext4 1.0 6b28d7fa-8554-48df-a1f0-a4a8e7ccfc6e 939.7M 91% / # <- ~10 GB root partition ├─nvme0n1p3 swap 1 e3b8188b-ab13-4d5c-b5fd-e23440f816f1 [SWAP] └─nvme0n1p4 ext4 1.0 a8fbcfb2-70ff-4474-8475-70b948bbc557 247.1G 39% /home > lsblk -o NAME,FSAVAIL,FSUSE%,SIZE,MOUNTPOINTS NAME FSTYPE FSAVAIL FSUSE% SIZE MOUNTPOINTS nvme0n1 476.9G ├─nvme0n1p1 vfat 46.1M 52% 100M /boot/efi ├─nvme0n1p2 ext4 939.7M 91% 27.9G / # ~10 GB or ~ 30 GB root partition? ├─nvme0n1p3 swap 977M [SWAP] └─nvme0n1p4 ext4 247.1G 39% 447.9G /home > sudo dumpe2fs -h /dev/nvme0n1p2 | grep Block dumpe2fs 1.47.0 (5-Feb-2023) Block count: 7324160 Block size: 4096 Blocks per group: 32768 ブロック数にブロックサイズを掛けると、ファイルシステムサイズは約29 GBになります。 簡単に言うと: baobab29GBの空間のうち約27GBが使用されたと報告されており、7.9GBのみが使用されたことが分かった。 df28GBのうち26GBが使用中であることを報告します(1)。 lsblkSIZEは27.9Gと報告されていますが、939.7M空きスペース(FSAVAIL)はデバイスの9%(100% - FSUSE%)に対応し、約10GB(2)のサイズを提供すると言われています。 dumpe2fs報告されたファイルシステムサイズは30 GBに近い(3)。 全体的に異なるツールで表現される2つの矛盾する状況があるようです。 パーティションとファイルシステムのサイズは約30GBでほぼいっぱいです。 パーティションとファイルシステムのサイズは約10GBでほぼいっぱいです。 これらの違いの原因は何ですか?

Admin

コンテンツが変更された場合、/dev/loopXに正しく(ライブ)アクセスできないのはなぜですか?
filesystems
mount
block-device
loopback

コンテンツが変更された場合、/dev/loopXに正しく(ライブ)アクセスできないのはなぜですか?

たとえば、ファイル/tmp/vdev(サイズ400KB、ext4形式)を作成してからマッピングしてから/dev/loop18マウントし、/dev/loop18下/tmp/mntにテキストファイルを作成し、別々の16進数でエディタを開くことで&それぞれを/tmp/mnt保持しながら、その中にさまざまなフレーズを作成すると、ファイルを保存すると、常にリアルタイムで更新されることを確認しました。ただし、最後のインストール操作の以前のコンテンツは常に表示され、削除されるまで更新されません。インストールするかどうかにかかわらず同じです。これには理由がありますか?リアルタイムアップデート(保存操作などのディスクに対する実際の修正)を強制的に適用するにはどうすればよいですか?/tmp/vdev/dev/loop18/tmp/vdev/dev/loop18-o sync/dev/loop18

Admin

エラーのため、initを実行できませんでした:jffs2:圧縮タイプ0x06は使用できません。
linux
filesystems
configuration
compression

エラーのため、initを実行できませんでした:jffs2:圧縮タイプ0x06は使用できません。

私は組み込みLinuxシステム(5.10.24)を開発しており、jffs2をrootfsとして使用しています。 次に、jffs2のカーネル設定を次のように変更します。 # CONFIG_JFFS2_FS_WBUF_VERIFY is not set # CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y # CONFIG_JFFS2_ZLIB is not set CONFIG_JFFS2_LZO=y # CONFIG_JFFS2_RTIME is not set # CONFIG_JFFS2_RUBIN is not set # CONFIG_JFFS2_CMODE_NONE is not set # CONFIG_JFFS2_CMODE_PRIORITY is not set # CONFIG_JFFS2_CMODE_SIZE is not set CONFIG_JFFS2_CMODE_FAVOURLZO=y そして、mkfs.jffs2 -e 0x8000 -p -l -n -X lzojffs2イメージを構築するために使用されます。 システムが起動すると、次のエラーが報告されます。 Run /init as init process jffs2: compression type 0x06 not available jffs2: Error: jffs2_decompress returned -5 Kernel panic - not syncing: Requested init /init failed (error -5). 私はとても混乱しています! エラーメッセージを見ると、jffs2イメージがZLIBを介して圧縮されているように見え-X lzoますmkfs.jffs2。 それでは、LZOを使用してシステムをjffs2システムで起動する方法は何ですか?

Admin

iowaitnotify close_waitはファイルが完全に記録されているかどうかを確認しますか?
linux
filesystems

iowaitnotify close_waitはファイルが完全に記録されているかどうかを確認しますか?

close_writeionotifywaitイベントがファイルが完全に記録されることを保証するかどうかを明確にしてください。 ファイル転送プログラムがXファイルをリモートサーバーZに送信し、ファイル転送が完了したら、ZのXを監視してXを移動する必要がある状況です。いつ送信が行われたかわからないので、監視が必要です。 bashスクリプトinotifywaitは、続行する前にファイルが完全に書き込まれるのを待ちます。close_writeファイルが完全に作成されたことを示します。 これら2つのファイルがあるかどうかを確認する最良の方法は何ですか?完全に書かれた pacholik close_writeが指摘したように、イベントオプションだけで十分です。 inotifywait -m -e close_write $1 | while read line ただし、マニュアルページには次のように記載されています。必ずしもファイルが記録されたというわけではありません。。 inotifywatch(1) - Linux のマニュアルページ 書き込み用に閉じる 監視されたファイルまたは監視されたディレクトリ内のファイルは、書き込み可能モードで開かれて閉じられます。これは実際に必ずしもファイルが作成されたという意味ではありません。。

Admin

停電後にBTRFSパーティションをマウントできません。
fedora
filesystems
data-recovery
btrfs

停電後にBTRFSパーティションをマウントできません。

BTRFSパーティションでFedora 38を実行していますが、システムの停止によりハード電源を切る必要がありました。これでシステムは起動時に緊急モードに入ります。現在Fedora Live CDを実行していますが、デフォルトのシステムパーティションはインストールを拒否します。 GUIを介してこれを行うと、次のようになります。 /run/media/liveuser/8ae5f957-a101-4486-991d-36558ce61b24 で /dev/nvme0n1p8 をマウント中にエラーが発生しました。 mount(2) システムコールが失敗しました。ファイルが存在します。 btrfsチェックを実行しましたが、エラーは報告されませんでした。 どんなアイデアがありますか?助けてくれてありがとう。今すぐ再起動し、緊急モードで正確なエラーを取得しようとします。しかし、役に立つ情報を提供していないようです。

Admin

マップされたファイルのカーネルのフラッシュ/同期によってwrite()呼び出しが中断される可能性がありますか?
filesystems
mmap

マップされたファイルのカーネルのフラッシュ/同期によってwrite()呼び出しが中断される可能性がありますか?

mmap私は(恥ずかしいことに)カーネルがとして処理されたファイルのダーティページをフラッシュするのを防ぐ方法がないことを知っているので、制御を取り戻すためにファイルをマップしてフラッシュしたいときに再度MAP_SHARED使用MAP_PRIVATEし、mmapそれからMAP_SHARED私write用マップで使用またはコピーしましたmemcpy次の更新を使用msyncし、最後にunmapを使用しますmunmap。私はカーネルのフラッシュが私の書き込みを中断してページを2番目に同期させることができるかどうか疑問に思っていますmsync(中断された場所)。write カーネルフラッシャーとwrite相互排除? そうでない場合は、ページ全体をコピーする方法はありますか?仮想ページポインタを操作してあるページの内容を別のページにコピーするのと同じですか?

Admin

ディレクトリダイアログを開く 質問する
.net
wpf
dialog
filesystems

ディレクトリダイアログを開く 質問する

ユーザーに、これから生成するファイルを保存するディレクトリを選択させたいと思っています。WPF ではOpenFileDialogWin32 から を使用する必要があることはわかっていますが、残念ながらダイアログではファイルを選択する必要があります。選択せずに [OK] をクリックするだけでは、ダイアログは開いたままになります。ユーザーにファイルを選択してもらい、パスを削除してどのディレクトリに属しているかを判断できるようにすることで、機能を「ハック」することもできますが、それは直感的ではありません。これを見たことがある人はいますか?

Admin

複数のフィルターを使用して Directory.GetFiles() を呼び出すことはできますか? 質問する
c#
filesystems
.net

複数のフィルターを使用して Directory.GetFiles() を呼び出すことはできますか? 質問する

メソッドを使用して、やDirectory.GetFiles()などの複数の種類のファイルのリストを取得しようとしています。次の 2 つの方法を試しましたが、うまくいきませんでした。mp3jpg Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories); Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories); これを 1 回の通話で実行する方法はありますか?

Admin