マウントまたはルートアクセス権なしでファイルセットを含むFAT32ファイルシステムを作成する方法はありますか?
私は趣味で古いオペレーティングシステム用のソフトウェアアプリケーションを開発していますが、ビルドプロセスの一部としていくつかのソースファイルをFAT32ディスクイメージにパッケージ化し、QEMUを起動してイメージを起動し、そこから既存のコンパイラを実行しようとしています。 。その後、FAT32ディスクイメージからコンパイルされたファイルを抽出したいと思います。
create filesystem を使用できますが、mkfs.vfat
イメージの内外にファイルを移動する唯一の方法はマウントすることです。これは通常ルートアクセスを必要とし、ビルドプロセスに含めるのに役立ちません。
理想的に私が望むのは、.zipファイルを作成/抽出せずに、代わりにFAT16またはFAT32形式のディスクイメージを作成して抽出することを除いて、ユーティリティのようなzip
ものです。unzip
そんなことがありますか?オンラインで見つけることができる唯一のものは、ディスクイメージのマウントに関連しています。
答え1
もちろん、検索は失敗しましたが、これに関する質問を投稿し、しばらくの間、ついに答えを見つけました。
したがって、このmtools
パッケージは次のことができます。
# Create a 2 MB file
dd if=/dev/zero of=disk.img bs=1M count=2
# Put a FAT filesystem on it (use -F for FAT32, otherwise it's automatic)
mformat -i disk.img ::
# Add a file to it
mcopy -i disk.img example.txt ::
# List files
mdir -i disk.img ::
# Extract a file
mcopy -i disk.img ::/example.txt extracted.txt
mtools
ドライブ文字(たとえば)を指定してC:
機能し、特殊:
ドライブ(として指定::
)はコマンドラインでこのオプションに付属のイメージを参照します-i
。