マウントされたイメージからファイルを削除してISOを再構築するには?

マウントされたイメージからファイルを削除してISOを再構築するには?

次の内容でISOを作成しました。

Directory listing of /
d---------   0    0    0            2048 Mar 19 2015 [     29 02]  .
d---------   0    0    0            2048 Mar 19 2015 [     29 02]  ..
d---------   0    0    0            4096 Mar 19 2015 [     32 02]  target-rpms
d---------   0    0    0            2048 Mar 19 2015 [     34 02]  vat
Directory listing of /target-rpms/
d---------   0    0    0            4096 Mar 19 2015 [     32 02]  .
d---------   0    0    0            2048 Mar 19 2015 [     29 02]  ..
----------   0    0    0        32435902 Mar 18 2015 [     85 00]  file1.rpm
----------   0    0    0         2055833 Mar 18 2015 [  15923 00]  file2.rpm
Directory listing of /vat/
d---------   0    0    0            2048 Mar 19 2015 [     44 02]  .
d---------   0    0    0            2048 Mar 19 2015 [     29 02]  ..
----------   0    0    0               0 Apr 20 2015 [  56633 00]  file1.txt

ISO搭載イメージからファイルを追加/削除したいので、次のようにしました。

  sudo mount -o loop,ro /full/path/to/file.iso /mounted/path

ファイルを追加するには、次の方法が見つかりました。

mkdir /path/where/put/addedFile/vat/
cp prova.txt /path/where/put/addedFile/vat/prova.txt
mkisofs -o /tmp/test.iso -A test-1.0 -copyright 'Test' -joliet-long -RU
 -uid 0 -gid 0 -iso-level 4 /mounted/path /path/where/put/addedFile

効果的にmkisofs、ファイルはディレクトリにマージされ、必要なtest.isoすべてのファイルが含まれます。

test.isoたとえば、この作業を実行する方法についてのアドバイスが必要ですtarget-rpms/file2.rpm

私はこれを行うために次のプログラムを使用できることを知っています。

mkdir /path/where/rebuildIso
cp -R /mounted/path /path/where/rebuildIso
rm /path/where/rebuildIso/target-rpms/file2.rpm
mkisofs -o /tmp/test.iso -A test-1.0 -copyright 'Test' -joliet-long -RU
 -uid 0 -gid 0 -iso-level 4 /path/where/rebuildIso

cpしかし、isoサイズなので、コマンドを避けたいです。

Red Hat Enterprise Linux ASバージョン3(Taroon Update 2)でmkisofs 2.01(i686-pc-linux-gnu)を使用しています。

ベストアンサー1

実際、mkisofs 2.01はgenisoimageを指しています:

$ mkisofs --version
mkisofs 2.01 is not what you see here. This line is only a fake for too clever
GUIs and other frontend applications. In fact, this program is:
genisoimage 1.1.11 (Linux)

man genisoimage次のオプションを試すことができます-m

-m glob
          Exclude files matching glob, a shell wildcard pattern, from being written to CD-ROM.  glob may match either the filename component or the full pathname.  This option may be used multiple times.  For example:

               genisoimage -o rom -m '*.o' -m core -m foobar

          would exclude all files ending in `.o', or called core or foobar from the image.  Note that if you had a directory called foobar, it too (and of course all its descendants) would be excluded.

   -exclude-list file
          A file containing a list of shell wildcards to be excluded.  See -m.

おすすめ記事