Date: Wed, 13 Jul 2016 14:45:21 -0500 From: Karl Denninger <karl@denninger.net> To: "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: Bizarre clone attempt failures on Raspberry Pi2... Message-ID: <548783e1-9047-68f7-5f50-449db684d602@denninger.net>
index | next in thread | raw e-mail
[-- Attachment #1 --]
The latest conundrum.....
I am attempting to "clone" a running SD card for the Pi2.
I have re-created the SD filestructure using gpart using the following
sequence, starting with a blank card (e.g. "da0") and aligning the Unix
filestructure on a 4MB boundary (which is my usual practice for any sort
of solid-state device)
#!/bin/sh
gpart create -s MBR $1
gpart add -t '!12' -s 50m $1
gpart set -a active -i 1 $1
gpart add -t freebsd -a 4m $1
newfs_msdos $1s1
gpart create -s bsd $1s2
gpart add -t freebsd-ufs $1s2
newfs -U -L rootfs $1s2a
then mounted the two "working" partitions this generates (da0s1 and
da0s2a) and successfully transferred the root and msdos filesystems
using rsync. The result appears to be fine when examined side-by-side
with the original, other than the fact that it looks like there were
sparse files that have been expanded, but when you try to boot the
result it starts, appears to mount the root filesystem, says it's not
clean (which is odd since it certainly was dismounted cleanly with
umount!), and the system hangs after displaying the UE (ethernet)
hardware MAC address on an HDMI console. There is no response from a
USB connected keyboard if you try to ^C out of wherever it is (although
it DOES know it's there and displays the "found" message when you plug
the keyboard in.)
If you wait long enough it will tell you it has unblocked the random
device. Unfortunately I have no idea where it's hanging in the startup
beyond this and have no way to find out since I can get out of wherever
it is, even with a physical keyboard plugged into it.
Putting the original card back in and sticking the one that failed to
boot in an SD card reader produces the following.
Base partition structure of the working sd card:
# gpart show /dev/mmcsd0
=> 63 62552001 mmcsd0 MBR (30G)
63 102375 1 !12 [active] (50M)
102438 62443482 2 freebsd (30G)
62545920 6144 - free - (3.0M)
Of the other card:
# gpart show /dev/da0
=> 63 62552001 da0 MBR (30G)
63 102400 1 !12 [active] (50M)
102463 4033 - free - (2.0M)
106496 62439424 2 freebsd (30G)
62545920 6144 - free - (3.0M)
# ls -al /dev/mm*
crw-r----- 1 root operator 0x4e Jul 10 19:24 /dev/mmcsd0
crw-r----- 1 root operator 0x4f Jul 10 19:24 /dev/mmcsd0s1
crw-r----- 1 root operator 0x50 Jul 10 19:24 /dev/mmcsd0s2
crw-r----- 1 root operator 0x53 Jul 10 19:24 /dev/mmcsd0s2a
And of the one that will not come up but does boot, in a SD card reader:
# ls -al /dev/da0*
crw-r----- 1 root operator 0x56 Jul 13 19:27 /dev/da0
crw-r----- 1 root operator 0x58 Jul 13 19:27 /dev/da0s1
crw-r----- 1 root operator 0x5d Jul 13 19:27 /dev/da0s2
crw-r----- 1 root operator 0x60 Jul 13 19:27 /dev/da0s2a
# mount -t msdosfs /dev/da0s1 /mnt
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ufs/rootfs 30229724 824548 26986800 3% /
devfs 1 1 0 100% /dev
/dev/msdosfs/MSDOSBOOT 51128 7560 43568 15% /boot/msdos
tmpfs 51200 4 51196 0% /tmp
/dev/da0s1 51128 7560 43568 15% /mnt
# ls /mnt
BOOTCODE.BIN START_CD.ELF
CONFIG.TXT START_X.ELF
FIXUP.DAT System Volume Information
FIXUP_CD.DAT U-BOOT.BIN
FIXUP_X.DAT UBLDR
RPI2.DTB UBLDR.BIN
START.ELF
Now here's the thing -- the unix-side filesystem has to be good too,
because the kernel is not in the MSDOS partition, it's in /boot/kernel
on the Unix side and it both loads and starts! But just for good
measure, here's what we got in there:
# mount -o ro /dev/da0s2a /mnt
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ufs/rootfs 30229724 824548 26986800 3% /
devfs 1 1 0 100% /dev
/dev/msdosfs/MSDOSBOOT 51128 7560 43568 15% /boot/msdos
tmpfs 51200 4 51196 0% /tmp
/dev/da0s2a 30233340 2299932 25514744 8% /mnt
I can mount it, and everything is there. Specifically, if I look
through /etc/rc.d and the /etc/rc file itself, both are present, as is
/sbin/init and the checksums match too.
With both filesystems mounted (the sd card cloned to on /mnt) tunefs
says they both have the label set correctly and all the flags are the
same -- the only difference is the space to hold for metadata blocks,
which is likely because the original load was done with an image and
then growfs resized it.
# tunefs -p /mnt
tunefs: POSIX.1e ACLs: (-a) disabled
tunefs: NFSv4 ACLs: (-N) disabled
tunefs: MAC multilabel: (-l) disabled
tunefs: soft updates: (-n) enabled
tunefs: soft update journaling: (-j) disabled
tunefs: gjournal: (-J) disabled
tunefs: trim: (-t) disabled
tunefs: maximum blocks per file in a cylinder group: (-e) 4096
tunefs: average file size: (-f) 16384
tunefs: average number of files in a directory: (-s) 64
tunefs: minimum percentage of free space: (-m) 8%
tunefs: space to hold for metadata blocks: (-k) 6408
tunefs: optimization preference: (-o) time
tunefs: volume label: (-L) rootfs
# tunefs -p /
tunefs: POSIX.1e ACLs: (-a) disabled
tunefs: NFSv4 ACLs: (-N) disabled
tunefs: MAC multilabel: (-l) disabled
tunefs: soft updates: (-n) enabled
tunefs: soft update journaling: (-j) disabled
tunefs: gjournal: (-J) disabled
tunefs: trim: (-t) disabled
tunefs: maximum blocks per file in a cylinder group: (-e) 4096
tunefs: average file size: (-f) 16384
tunefs: average number of files in a directory: (-s) 64
tunefs: minimum percentage of free space: (-m) 8%
tunefs: space to hold for metadata blocks: (-k) 2488
tunefs: optimization preference: (-o) time
tunefs: volume label: (-L) rootfs
I've never had trouble cloning a disk like this in the Intel world and
quite-clearly the system CAN find the cloned card's filesystem structure
or the kernel would not come up -- but it does....
What the hell am I doing wrong?
--
Karl Denninger
karl@denninger.net <mailto:karl@denninger.net>
/The Market Ticker/
/[S/MIME encrypted email preferred]/
[-- Attachment #2 --]
0 *H
010
`He 0 *H
_0[0C)0
*H
010 UUS10UFlorida10U Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1"0 *H
Cuda Systems LLC CA0
150421022159Z
200419022159Z0Z10 UUS10UFlorida10U
Cuda Systems LLC10UKarl Denninger (OCSP)0"0
*H
0
X@vkY
Tq/vE]5#֯MX\8LJ/V?5Da+
sJc*/r{ȼnS+ w")ąZ^DtdCOZ ~7Q '@a#ijc۴oZdB&!Ӝ-< ?HN5y
5}F|ef"Vلio74zn">a1qWuɖbFeGE&3(KhixG3!#e_XƬϜ/,$+;4y'Bz<qT9_?rRUpn5
Jn&Rx/p Jyel*pN8/#9u/YPEC)TY>~/˘N[vyiDKˉ,^" ?$T8 v&K%z8C @?K{9f`+@,|Mbia 007++0)0'+0http://cudasystems.net:88880 U0 0 `HB0U0, `HB
OpenSSL Generated Certificate0U-h\Ff Y0U#0$q}ݽʒm50U0karl@denninger.net0
*H
Owbabɺx&Uk[(Oj!%p MQ0I!#QH}.>~2&D}<wm_>V6v]f>=Nn+8;q wfΰ/RLyUG#b}n!Dր_up|_ǰc/%ۥ
nN8:d;-UJd/m1~VނיnN I˾$tF1&}|?q?\đXԑ&\4V<lKۮ3%Am_(q-(cAeGX)f}-˥6cv~Kg8m~v;|9:-iAPқ6ېn-.)<[$KJtt/L4ᖣ^Cmu4vb{+BG$M0c\[MR|0FԸP&78"4p#}DZ9;V9#>Sw"[UP7100010 UUS10UFlorida10U Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1"0 *H
Cuda Systems LLC CA)0
`He M0 *H
1 *H
0 *H
1
160713194521Z0O *H
1B@ KOfL&5@]S ƫ%~ߌ1>gfC|}X0l *H
1_0]0 `He*0 `He0
*H
0*H
0
*H
@0+0
*H
(0 +710010 UUS10UFlorida10U Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1"0 *H
Cuda Systems LLC CA)0*H
1010 UUS10UFlorida10U Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1"0 *H
Cuda Systems LLC CA)0
*H
4,=(vqq`8>3>iٕxh*Os pIT"?uToim@SP!QrR\鼹mB.<;}miL90VȌƚ ^C`-e$ E+VY]$iy!G7&ZKKobi),ԅerȨT-.dՂ ݢ #HTZ%߰79e1"_8
¥sX8bU
|X!cB=i}/#"x]c_WN9|*uMŵZĀBx@&&8%ՖdQKH_}b+k)7yV#U=VjeC"Pcݓ3/<(RD;ގ?Mh|UkˢPDRuoLT«r=F ۀN.GsI&
Rf84C>^_!
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?548783e1-9047-68f7-5f50-449db684d602>
