Port-sparc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Installation from a tape
Hello all,
I purchased DDS3 DAT drive for my SS20, and trying execute
installer booting from a tape.
(My SS20 has NetBSD 10.1 in its HDD, and can be booted from an
internal CD-ROM drive. Just trying booting from the tape.
The tape drive itself works fine.)
Based on "Installing NetBSD by using a bootable tape" section of
Installation note for 10.1, I created bootable tape as follows:
# dd if=tapefile1 of=/dev/nrst0 bs=4k conv=sync
# dd if=tapefile2 of=/dev/nrst0 bs=4k conv=sync
(note that conv=osync in installation instruction does not work
with bs=, so I used conv=sync)
Then, I booted my SS20 from the tape. Kernel is successfully
loaded and asked name of tape drive and place of tapefile2 and
block size. Then I got errors as following:
[198.2459840] st0: 4096-byte tape record too big for 4-byte user buffer
[198.2609645] st0(esp0:0:4:0): Sense Key 0x00, info = -4092 (decimal), data = 00
00 00 00 00 00 00 00 00 00 00 00
gzip: can't read stdin: Input/output error
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
Pictures trying 4k block and 512 byte block are here:
https://imgs.nere9.help/media_attachments/files/115/801/349/416/514/298/small/98
18552bbfe58c41.jpg
https://imgs.nere9.help/media_attachments/files/115/801/354/696/829/695/small/35
93f8181a633a37.jpg
https://mstdn.nere9.help/@7n2jju/115801360048233652
This seem to be caused by user-land buffer is too small to read()
a block device. user-land buffer is only 4 bytes. According to
src/distrib/sparc/ramdisk/dot.profile, failed command is tar:
echo "Extracting installation utilities... "
(cd $INSTFS_MP && tar $bsa -z -x -p -f $dev) || return 1
tar is just running
tar zxpf releasedir/sparc/installation/bootfs/instfs.tgz
from tape device.
After booted in multi-user, /bin/tar can read tapefile2 from
/dev/nrst0 normally.
tar command in kernel's ramdisk is crunched binary based on pax
command, according to obj/distrib/sparc/ramdisk/pax.
Then, I tried to read tapefile2 using crunched binary in
ramdisk image at obj/distrib/sparc/ramdisk in multi-user mode,
booted from HDD:
# cd /tmp
# mt rewind
# mt fsf 1
# /usr/obj/distrib/sparc/ramdisk/ramdiskbin tar zxf /dev/nrst0
This causes similar errors shown above. Also,
# /usr/obj/distrib/sparc/ramdisk/ramdiskbin pax -rzvf /dev/nrst0
gives the same result.
However,
# cd somewhere
# /usr/obj/distrib/sparc/ramdisk/ramdiskbin pax -rzvf /usr/obj/releasedir/sparc/installation/bootfs/instfs.tgz
works fine.
This result seem to be caused by differences between block device
and raw device/character based file. However, referring st(4)
manpage, st have both of block device and raw modes.
Creating a tape with bs=4 (not 4K, adjusted for user-land buffer
size) for tapefile2 itself succeeded, however, loading and
extracting it failed:
https://imgs.nere9.help/media_attachments/files/115/801/651/589/726/321/original
/721eb54dbf2f4b32.jpg
https://mstdn.nere9.help/@7n2jju/115801651917939976
Does someone test and try?, or any good idea?
Lecturer / Faculty of Software & Info. Sci., Iwate Prefectural Univ., Japan
Nobuyoshi Sato, Ph.D / nobu-s%iwate-pu.ac.jp@localhost / +81-19-694-2612
Home |
Main Index |
Thread Index |
Old Index