Re: makefs(8) & broken iso9660 images

From: Martin Matuska <mm_at_FreeBSD.org>
Date: Thu, 11 Aug 2011 01:44:58 +0200
On 10. 8. 2011 16:54, Test Rat wrote:
> A quick example
>
>   $ mkdir -p q/a q/b q/c q/d
>   $ touch q/a/foo.c q/b/foo.c q/c/foo.c q/d/foo.c
>
>   $ makefs -t cd9660 q.iso q
>   $ tar tf q.iso
>   .
>   A
>   B
>   A/FOO.C
>   B/FOO.C
>   C
>   D
>
>   $ mkisofs -quiet -o q.iso q
>   $ tar tf q.iso
>   .
>   A
>   B
>   C
>   D
>   D/FOO.C
>   C/FOO.C
>   B/FOO.C
>   A/FOO.C
>
>   $ makefs -t cd9660 inc.iso /usr/include
>   $ tar tvvf inc.iso
>   tar: Invalid location of extent of file
>   Archive Format: ISO9660,  Compression: none
>   tar: Error exit delayed from previous errors.
>
>   $ mkisofs -quiet -o inc.iso /usr/include
>   mkisofs: Symlink /usr/include/float.h ignored - continuing.
>   mkisofs: Symlink /usr/include/syslog.h ignored - continuing.
>   mkisofs: Symlink /usr/include/sched.h ignored - continuing.
>   [...]
>   $ tar tvvf inc.iso
>   drwx------  54 0      0       12288 Aug 10 15:26 .
>   drwx------  2 0      0        2048 Jun 14 01:40 NETATALK
>   [...]
>   -r--------  1 0      0        6324 Jun 14 01:40 GSSAPI/GSSAPI_K.H
>   Archive Format: ISO9660,  Compression: none
>
> And for more real example grab a bootonly image from allbsd.org though
> official BETA1 would suffice, too, and try to extract kernel e.g.
>
>   $ sha256 -q FreeBSD-9.0-HEAD-20110810-JPSNAP-bootonly.iso
>   9b8beabe007f88f85f3fc59dd1b40ce212132dde173e03d4a93d48a5477989a4
>
>   $ tar tf FreeBSD-9.0-HEAD-20110810-JPSNAP-bootonly.iso | fgrep -i kernel
>   [nothing]
>   $ mount -t cd9660 /dev/$(mdconfig -f FreeBSD-9.0-HEAD-20110810-JPSNAP-bootonly.iso) /media
>   $ ls -1 /media/boot/kernel
>   aac.ko
>   accf_data.ko
>   accf_dns.ko
>   accf_http.ko
>   acpi_asus.ko
>   acpi_dock.ko
>   acpi_fujitsu.ko
>   acpi_hp.ko
>   acpi_ibm.ko
>   acpi_panasonic.ko
>   ^C
>
> And the following is probably known but doesn't happen with 8.2-RELEASE image.
>
>   $ find /media/usr/include >/dev/null
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/basic_tree_policy: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/binary_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/binomial_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/binomial_heap_base_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/bin_search_tree_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/cc_hash_table_map_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/eq_fn: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/gp_hash_table_map_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/hash_fn: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/left_child_next_sibling_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/list_update_map_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/list_update_policy: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/ov_tree_map_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/pairing_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/pat_trie_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/rb_tree_map_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/rc_binomial_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/resize_policy: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/splay_tree_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/thin_heap_: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/tree_policy: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/trie_policy: Input/output error
>   find: /media/usr/include/c++/4.2/ext/pb_ds/detail/unordered_iterator: Input/output error
>
> Am I alone in seeing this?
>
To resolve problems as quickly as possible, libarchive errors (tar)
should also be reported as issues to libarchive.googlecode.com, makefs
errors filed as NetBSD PR's.
The first two examples is libarchive with problems to read properly a
makefs-created ISO images.
The last example is bug completely fixed in r224762, going to be
commited to 8-stable and 7-stable soon.

-- 
Martin Matuska
FreeBSD committer
http://blog.vx.sk
Received on Wed Aug 10 2011 - 21:44:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:16 UTC