FreeBSD ISO layout
Sample ISO layout of 6.2-RELEASE i386
The directory ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.2 lists the following contents:
6.2-RELEASE-i386-bootonly.iso 24848 KB 01/12/2007 12:00:00 AM 6.2-RELEASE-i386-disc1.iso 587138 KB 01/12/2007 12:00:00 AM 6.2-RELEASE-i386-disc2.iso 654402 KB 01/12/2007 12:00:00 AM 6.2-RELEASE-i386-docs.iso 192414 KB 01/12/2007 12:00:00 AM CHECKSUM.MD5 1 KB 01/12/2007 12:00:00 AM CHECKSUM.SHA256 1 KB 01/12/2007 12:00:00 AM
The file CHECKSUM.MD5 contains the following text:
MD5 (6.2-RELEASE-i386-bootonly.iso) = 4e8701ac951bc4537f8420fdac7efbb5 MD5 (6.2-RELEASE-i386-disc1.iso) = 3d27214700687c0b5390e8b6dd3706e3 MD5 (6.2-RELEASE-i386-disc2.iso) = fd30bfc65ef8adaa67aeffd07c72bf21 MD5 (6.2-RELEASE-i386-docs.iso) = e3512834982a9beebc3670499c7f3817
The four ISO images were downloaded to an OpenBSD host (from various mirrors) and the signatures were verified using the OpenBSD md5 command. For some other systems the command is md5sum instead.
The four ISO images were then loopback mounted using svnd devices as follows:
mkdir boot disc1 disc2 docs sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-bootonly.iso sudo mount -t cd9660 /dev/md0 boot sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-disc1.iso sudo mount -t cd9660 /dev/md1 disc1 sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-disc2.iso sudo mount -t cd9660 /dev/md2 disc2 sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-docs.iso sudo mount -t cd9660 /dev/md3 docs
After mounting the four images as above, the top-level structure of the ISO images was listed out with the command:
find . -maxdepth 4 -type d
which produces the following output:
./boot ./boot/boot ./boot/boot/defaults ./boot/boot/kernel ./boot/boot/modules ./disc1 ./disc1/6.2-RELEASE ./disc1/6.2-RELEASE/base ./disc1/6.2-RELEASE/catpages ./disc1/6.2-RELEASE/dict ./disc1/6.2-RELEASE/doc ./disc1/6.2-RELEASE/games ./disc1/6.2-RELEASE/info ./disc1/6.2-RELEASE/kernels ./disc1/6.2-RELEASE/manpages ./disc1/6.2-RELEASE/ports ./disc1/6.2-RELEASE/proflibs ./disc1/6.2-RELEASE/src ./disc1/bin ./disc1/boot ./disc1/boot/defaults ./disc1/boot/kernel ./disc1/boot/modules ./disc1/dev ./disc1/etc ./disc1/etc/bluetooth ./disc1/etc/defaults ./disc1/etc/gnats ./disc1/etc/isdn ./disc1/etc/mail ./disc1/etc/mtree ./disc1/etc/ntp ./disc1/etc/pam.d ./disc1/etc/periodic ./disc1/etc/periodic/daily ./disc1/etc/periodic/monthly ./disc1/etc/periodic/security ./disc1/etc/periodic/weekly ./disc1/etc/ppp ./disc1/etc/rc.d ./disc1/etc/security ./disc1/etc/skel ./disc1/etc/ssh ./disc1/etc/ssl ./disc1/etc/X11 ./disc1/floppies ./disc1/lib ./disc1/lib/geom ./disc1/libexec ./disc1/media ./disc1/mnt ./disc1/packages ./disc1/packages/All ./disc1/packages/devel ./disc1/packages/emulators ./disc1/packages/graphics ./disc1/packages/lang ./disc1/packages/linux ./disc1/packages/perl5 ./disc1/packages/print ./disc1/packages/textproc ./disc1/packages/x11 ./disc1/packages/x11-fonts ./disc1/packages/x11-servers ./disc1/proc ./disc1/rescue ./disc1/root ./disc1/sbin ./disc1/tmp ./disc1/tools ./disc1/tools/bsdboot ./disc1/tools/dist ./disc1/tools/srcs ./disc1/tools/srcs/bteasy ./disc1/tools/srcs/EXTIPL ./disc1/tools/srcs/fips ./disc1/tools/srcs/ide_conf ./disc1/tools/srcs/pfdisk ./disc1/tools/srcs/rawrite ./disc1/usr ./disc1/usr/bin ./disc1/usr/games ./disc1/usr/include ./disc1/usr/include/altq ./disc1/usr/include/arpa ./disc1/usr/include/bsm ./disc1/usr/include/bsnmp ./disc1/usr/include/cam ./disc1/usr/include/crypto ./disc1/usr/include/c++ ./disc1/usr/include/dev ./disc1/usr/include/fs ./disc1/usr/include/geom ./disc1/usr/include/gnu ./disc1/usr/include/gpib ./disc1/usr/include/isofs ./disc1/usr/include/kadm5 ./disc1/usr/include/libmilter ./disc1/usr/include/lwres ./disc1/usr/include/machine ./disc1/usr/include/net ./disc1/usr/include/net80211 ./disc1/usr/include/netatalk ./disc1/usr/include/netatm ./disc1/usr/include/netgraph ./disc1/usr/include/netinet ./disc1/usr/include/netinet6 ./disc1/usr/include/netipsec ./disc1/usr/include/netipx ./disc1/usr/include/netkey ./disc1/usr/include/netnatm ./disc1/usr/include/netncp ./disc1/usr/include/netsmb ./disc1/usr/include/nfs ./disc1/usr/include/nfsclient ./disc1/usr/include/nfsserver ./disc1/usr/include/objc ./disc1/usr/include/openssl ./disc1/usr/include/pccard ./disc1/usr/include/posix4 ./disc1/usr/include/protocols ./disc1/usr/include/readline ./disc1/usr/include/rpc ./disc1/usr/include/rpcsvc ./disc1/usr/include/security ./disc1/usr/include/sys ./disc1/usr/include/ufs ./disc1/usr/include/vm ./disc1/usr/lib ./disc1/usr/lib/aout ./disc1/usr/lib/compat ./disc1/usr/libdata ./disc1/usr/libdata/gcc ./disc1/usr/libdata/ldscripts ./disc1/usr/libdata/lint ./disc1/usr/libexec ./disc1/usr/libexec/lpr ./disc1/usr/libexec/sendmail ./disc1/usr/libexec/sm.bin ./disc1/usr/local ./disc1/usr/obj ./disc1/usr/sbin ./disc1/usr/share ./disc1/usr/share/calendar ./disc1/usr/share/dict ./disc1/usr/share/doc ./disc1/usr/share/examples ./disc1/usr/share/games ./disc1/usr/share/groff_font ./disc1/usr/share/info ./disc1/usr/share/isdn ./disc1/usr/share/locale ./disc1/usr/share/man ./disc1/usr/share/me ./disc1/usr/share/misc ./disc1/usr/share/mk ./disc1/usr/share/nls ./disc1/usr/share/openssl ./disc1/usr/share/pcvt ./disc1/usr/share/security ./disc1/usr/share/sendmail ./disc1/usr/share/skel ./disc1/usr/share/snmp ./disc1/usr/share/syscons ./disc1/usr/share/tabset ./disc1/usr/share/tmac ./disc1/usr/share/vi ./disc1/usr/share/zoneinfo ./disc1/usr/src ./disc1/var ./disc1/var/account ./disc1/var/at ./disc1/var/at/jobs ./disc1/var/at/spool ./disc1/var/audit ./disc1/var/backups ./disc1/var/crash ./disc1/var/cron ./disc1/var/cron/tabs ./disc1/var/db ./disc1/var/db/entropy ./disc1/var/db/freebsd-update ./disc1/var/db/ipf ./disc1/var/db/pkg ./disc1/var/db/ports ./disc1/var/db/portsnap ./disc1/var/empty ./disc1/var/heimdal ./disc1/var/log ./disc1/var/mail ./disc1/var/msgs ./disc1/var/named ./disc1/var/named/dev ./disc1/var/named/etc ./disc1/var/named/var ./disc1/var/preserve ./disc1/var/run ./disc1/var/run/named ./disc1/var/run/ppp ./disc1/var/rwho ./disc1/var/spool ./disc1/var/spool/clientmqueue ./disc1/var/spool/lock ./disc1/var/spool/lpd ./disc1/var/spool/mqueue ./disc1/var/spool/opielocks ./disc1/var/spool/output ./disc1/var/tmp ./disc1/var/tmp/vi.recover ./disc1/var/yp ./disc2 ./disc2/packages ./disc2/packages/accessibility ./disc2/packages/afterstep ./disc2/packages/All ./disc2/packages/archivers ./disc2/packages/astro ./disc2/packages/audio ./disc2/packages/comms ./disc2/packages/converters ./disc2/packages/databases ./disc2/packages/deskutils ./disc2/packages/devel ./disc2/packages/dns ./disc2/packages/editors ./disc2/packages/emulators ./disc2/packages/ftp ./disc2/packages/games ./disc2/packages/gnome ./disc2/packages/graphics ./disc2/packages/ipv6 ./disc2/packages/irc ./disc2/packages/kde ./disc2/packages/lang ./disc2/packages/mail ./disc2/packages/math ./disc2/packages/misc ./disc2/packages/multimedia ./disc2/packages/net ./disc2/packages/net-mgmt ./disc2/packages/news ./disc2/packages/palm ./disc2/packages/perl5 ./disc2/packages/print ./disc2/packages/python ./disc2/packages/ruby ./disc2/packages/scheme ./disc2/packages/security ./disc2/packages/shells ./disc2/packages/sysutils ./disc2/packages/textproc ./disc2/packages/windowmaker ./disc2/packages/www ./disc2/packages/x11 ./disc2/packages/x11-clocks ./disc2/packages/x11-fm ./disc2/packages/x11-fonts ./disc2/packages/x11-themes ./disc2/packages/x11-toolkits ./disc2/packages/x11-wm ./docs ./docs/rr_moved ./docs/usr ./docs/usr/share ./docs/usr/share/doc
The mounted size, as reported by du -shPx differs from the ISO image size:
23.3M boot 997M disc1 638M disc2 177M docs
Whereas the ISO file sizes are:
6.2-RELEASE-i386-bootonly.iso 24,848 KB 6.2-RELEASE-i386-disc1.iso 587,138 KB 6.2-RELEASE-i386-disc2.iso 654,402 KB 6.2-RELEASE-i386-docs.iso 192,414 KB
For a mirror combining the contents of disc1 and disc2, about 1.6 GB of storage would be consumed.
FreeBSD ftp mirror layout
For comparison, the file ftp://ftp.freebsd.org/pub/FreeBSD/dir.sizes shows the layout of a typical FreeBSD mirror, presumably giving the file sizes in multiples of KiB. The total size of the mirror for all architectures appears to be 440GB. The FreeBSD mirror documentation at Requirements for FreeBSD mirrors states that a Full FTP Distribution occupies 412 GB. Mirroring the whole of the ftp distribution is not practical for a local mirror.
See also
- Mirroring FreeBSD -- from freebsd.org
- FreeBSD Release Engineering -- also from freebsd.org