Date: Sun, 7 Jul 2002 00:53:58 +0930 From: "Rob" <listone@deathbeforedecaf.net> To: <freebsd-questions@freebsd.org> Subject: Backups to CD-R - problems with filesystems Message-ID: <000e01c22501$26e349e0$a4b826cb@goo>
next in thread | raw e-mail | index | archive | help
I've had a few adventures in recent days trying to make CD-R backups. In
case I've gone down a complete dead-end, here's the objective:
* Copy selected directory trees from 3 FreeBSD systems onto CD as a
mountable filesystem (not a monolithic archive)
The first challenge was to get the files onto 1 machine (with a CD burner).
I tried piping tar through ssh
goo# ssh gir 'cd / ; tar -cf - boot etc home usr/local/etc' |
( cd gir && tar -xpf - )
but discovered that it misbehaves when the users in a tarfile don't exist
on the destination machine. Instead of leaving the files with numeric
owners, it chowns them to the user performing the extraction.
I couldn't find any options to fix this - same-permissions and same-owner
didn't seem to make a difference.
I found success with pax (does anyone actually use this?)
goo# ssh gir 'cd / ; pax -w boot etc home usr/local/etc' |
( cd gir && pax -rpe )
goo# ssh zim 'cd / ; pax -w boot etc home usr/local/etc' |
( cd zim && pax -rpe )
goo# ( cd / ; pax -w boot etc home usr/local/etc ) |
( cd goo && pax -rpe )
So now I had a directory containing the saveworthy parts of 3 systems.
Next challenge: get them onto a CD.
The usual way to do this is with mkisofs and burncd (I'm using an ATA
writer). I installed mkisofs-1.14 and tried to build the image
goo# mkisofs -R -U -o /tmp/image.iso *
but ended up with lots of errors like
mkisofs: Error: goo/boot/boot0 and zim/boot/boot0 have the same Rock Ridge name
mkisofs: Error: goo/boot/boot0 and gir/boot/boot0 have the same Rock Ridge name
mkisofs: Error: zim/boot/boot0 and gir/boot/boot0 have the same Rock Ridge name
. . .
mkisofs: Unable to sort directory gir/boot
After some googling, it looks like this is also a known issue. I tried
using unrestricted IS09660 without RockRidge, but that threw away things
like symlinks.
So I decided to give up on ISO, and build a nice simple FFS image instead.
My first attempt used a filesystem on a vnode
goo# dd if=/dev/zero of=image bs=2k count=350k
358400+0 records in
358400+0 records out
734003200 bytes transferred in 21.955657 secs (33431165 bytes/sec)
goo# vnconfig -s labels -c vn0 image
goo# disklabel -r -w vn0 auto
goo# newfs vn0c
/dev/vn0c: 1433600 sectors in 350 cylinders of 1 tracks, 4096 sectors
700.0MB in 22 cyl groups (16 c/g, 32.00MB/g, 7936 i/g)
super-block backups (for fsck -b #) at:
32, 65568, 131104, 196640, 262176, 327712, 393248, 458784, 524320, 589856,
655392, 720928, 786464, 852000, 917536, 983072, 1048608, 1114144, 1179680,
1245216, 1310752, 1376288
goo# mount /dev/vn0c `pwd`/mount
and after copying the files into the mounted filesystem, wrote the vnode
file to CD
goo# umount `pwd`/mount
goo# burncd -f acd1 -s 12 -et data image fixate
but when I tried to mount the CD-ROM on another machine, I got an error
zim# mount -t ufs -r /dev/acd0c /cdrom
mount: /dev/acd0c on /cdrom: incorrect super block
I had a look at the start of the CD using hexdump, and compared it to a
disk filesystem
goo# hd -n 10240 /dev/acd0c
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200 57 45 56 82 00 00 00 00 61 6d 6e 65 73 69 61 63 |WEV.....amnesiac|
00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000220 00 00 00 00 00 00 00 00 00 02 00 00 20 00 00 00 |............ ...|
00000230 40 00 00 00 bc 02 00 00 00 08 00 00 00 e0 15 00 |@...............|
00000240 00 00 00 00 00 00 00 00 10 0e 01 00 00 00 00 00 |................|
00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000280 00 00 00 00 57 45 56 82 cf 08 08 00 00 20 00 00 |....WEV...... ..|
00000290 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. ..............|
000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000002b0 00 00 00 00 00 e0 15 00 00 00 00 00 00 04 00 00 |................|
000002c0 07 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00002000 00 00 00 00 00 00 00 00 10 00 00 00 18 00 00 00 |................|
00002010 20 00 00 00 00 04 00 00 00 08 00 00 ff ff ff ff | ...............|
00002020 b2 a1 26 3d 00 f0 0a 00 4f 99 0a 00 16 00 00 00 |..&=....O.......|
00002030 00 20 00 00 00 04 00 00 08 00 00 00 08 00 00 00 |. ..............|
00002040 00 00 00 00 3c 00 00 00 00 e0 ff ff 00 fc ff ff |....<...........|
00002050 0d 00 00 00 0a 00 00 00 0f 00 00 00 00 08 00 00 |................|
00002060 03 00 00 00 01 00 00 00 00 08 00 00 00 fe ff ff |................|
00002070 09 00 00 00 00 08 00 00 40 00 00 00 02 00 00 00 |........@.......|
00002080 00 00 00 00 00 10 00 00 01 00 00 00 00 00 00 00 |................|
00002090 4c 92 26 3d 98 80 2c 24 00 04 00 00 00 04 00 00 |L.&=..,$........|
000020a0 00 18 00 00 01 00 00 00 00 10 00 00 00 10 00 00 |................|
000020b0 5e 01 00 00 10 00 00 00 00 1f 00 00 00 80 00 00 |^...............|
000020c0 59 02 00 00 15 d3 00 00 93 91 02 00 e5 00 00 00 |Y...............|
000020d0 00 01 00 00 2f 76 61 72 2f 73 70 6f 6f 6c 2f 63 |..../var/spool/c|
000020e0 64 72 6f 6d 2d 69 6d 61 67 65 73 2f 6d 6f 75 6e |drom-images/moun|
000020f0 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |t...............|
00002100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000022d0 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 |................|
000022e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
. . .
goo# hd -n 10240 /dev/ad0s1g
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00002000 00 00 00 00 00 00 00 00 10 00 00 00 18 00 00 00 |................|
00002010 20 00 00 00 00 04 00 00 00 08 00 00 ff ff ff ff | ...............|
00002020 a5 b4 26 3d 4b cd 46 00 18 9e 44 00 8e 00 00 00 |..&=K.F...D.....|
00002030 00 20 00 00 00 04 00 00 08 00 00 00 08 00 00 00 |. ..............|
00002040 00 00 00 00 3c 00 00 00 00 e0 ff ff 00 fc ff ff |....<...........|
00002050 0d 00 00 00 0a 00 00 00 0f 00 00 00 00 08 00 00 |................|
00002060 03 00 00 00 01 00 00 00 00 08 00 00 00 fe ff ff |................|
00002070 09 00 00 00 00 08 00 00 40 00 00 00 02 00 00 00 |........@.......|
00002080 00 00 00 00 00 10 00 00 01 00 00 00 00 00 00 00 |................|
00002090 06 94 7a 3c 44 01 57 2f 00 04 00 00 00 0c 00 00 |..z<D.W/........|
000020a0 00 18 00 00 01 00 00 00 00 10 00 00 00 10 00 00 |................|
000020b0 da 08 00 00 10 00 00 00 00 1f 00 00 00 80 00 00 |................|
000020c0 52 00 00 00 d2 be 03 00 a6 30 11 00 48 02 00 00 |R........0..H...|
000020d0 00 00 00 02 2f 68 6f 6d 65 00 00 00 00 00 00 00 |..../home.......|
000020e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000022d0 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 |................|
000022e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
. . .
It looked like the part from 0x2000 was similar, but the disk had zeros
beforehand while the CD had data. So I made another image with zeros in
the first 8k (obviously with no actual knowledge of filesystems :-)
goo# ( dd if=/dev/zero bs=2k count=4 ; dd if=/dev/vn0c bs=2k skip=4 ) |
burncd -f /dev/acd1c -s 12 -e data - fixate
and tried again
zim# mount -t ufs -r /dev/acd0c /cdrom
mount: /dev/acd0c on /cdrom: incorrect super block
but the result was the same.
At this point I'm stuck - all I want is a nice simple filesystem on CD,
that I can mount as needed.... has anyone come up with a better way of
doing this?
Thanks
Rob.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000e01c22501$26e349e0$a4b826cb>
