pavement

FreeBSD ISO layout

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
(comparison to full FTP distribution)
(vnconfig(8) has been discontinued -> mdconfig(8))
Line 25: Line 25:
 
mkdir boot disc1 disc2 docs  
 
mkdir boot disc1 disc2 docs  
  
sudo vnconfig svnd0 6.2-RELEASE-i386-bootonly.iso  
+
sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-bootonly.iso  
sudo mount -t cd9660 /dev/svnd0c boot
+
sudo mount -t cd9660 /dev/md0 boot
  
sudo vnconfig svnd1 6.2-RELEASE-i386-disc1.iso  
+
sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-disc1.iso  
sudo mount -t cd9660 /dev/svnd1c disc1
+
sudo mount -t cd9660 /dev/md1 disc1
  
sudo vnconfig svnd2 6.2-RELEASE-i386-disc2.iso  
+
sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-disc2.iso  
sudo mount -t cd9660 /dev/svnd2c disc2
+
sudo mount -t cd9660 /dev/md2 disc2
  
sudo vnconfig svnd3 6.2-RELEASE-i386-docs.iso  
+
sudo mdconfig -a -t vnode -f 6.2-RELEASE-i386-docs.iso  
sudo mount -t cd9660 /dev/svnd3c docs
+
sudo mount -t cd9660 /dev/md3 docs
 
</pre>
 
</pre>
  
Line 325: Line 325:
 
</pre>  
 
</pre>  
  
For a mirror combining the contents of disc1 and disc2, about 1.6 GB of storage would be consumed.
+
For a mirror combining the contents of disc1 and disc2, about 1.6 GB of storage would be consumed.
  
 
==FreeBSD ftp mirror layout==
 
==FreeBSD ftp mirror layout==

Revision as of 12:15, 4 November 2007

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

Personal tools