Snapshot stable/13-n252734-56533712694 first boot "gpart: arg0 'ufs/rootfs': Invalid argument"; also, an alignment question . . .
- Reply: Mark Millard : "Re: Snapshot stable/13-n252734-56533712694 first boot "gpart: arg0 'ufs/rootfs': Invalid argument"; also, an alignment question . . ."
- Reply: Glen Barber : "Re: Snapshot stable/13-n252734-56533712694 first boot "gpart: arg0 'ufs/rootfs': Invalid argument"; also, an alignment question . . ."
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 17 Oct 2022 19:30:40 UTC
[While the example is an aarch64 context, the issue should be
more general.]
Issue #0:
After dd'ing:
FreeBSD-13.1-STABLE-arm64-aarch64-RPI-20221014-56533712694-252734.img
to the USB3 media booting got a notice:
gpart: arg0 'ufs/rootfs': Invalid argument
Showing some context:
. . .
Setting hostuuid: 30303031-3030-3030-3265-373238346338.
Setting hostid: 0xd2f9b0de.
Starting file system checks:
/dev/ufs/rootfs: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ufs/rootfs: clean, 498385 free (1281 frags, 62138 blocks, 0.1% fragmentation)
Growing root partition to fill device
random: randomdev_wait_until_seeded unblock wait
random: randomdev_wait_until_seeded unblock wait
random: unblocking device.
GEOM_PART: da0s2 was automatically resized.
Use `gpart commit da0s2` to save changes or `gpart undo da0s2` to revert them.
da0s2 resized
da0s2a resized
gpart: arg0 'ufs/rootfs': Invalid argument
super-block backups (for fsck_ffs -b #) at:
. . .
It looks like the line in question in /etc/rc.d/growfs is:
gpart commit "$rootdev"
where the prior code:
FSTYPE=$(mount -p | awk '{ if ( $2 == "/") { print $3 }}')
FSDEV=$(mount -p | awk '{ if ( $2 == "/") { print $1 }}')
case "$FSTYPE" in
ufs)
rootdev=${FSDEV#/dev/}
;;
assigned rootdev based on:
For FSTYPE:
# mount -p | awk '{ if ( $2 == "/") { print $3 }}'
ufs
For FSDEV:
# mount -p | awk '{ if ( $2 == "/") { print $1 }}'
/dev/ufs/rootfs
So: ufs/rootfs
I'd guess that the problem is that after the gpart resize -i . . .
activities the label ufs/rootfs is no longer effective for
gpart (until the growfs -y completes?).
Whatever the cause, gpart is rejecting the ufs/rootfs
notation.
Issue #1 (unsure of the intent, so checking):
# gpart show
=> 63 468862065 da0 MBR (224G)
63 1985 - free - (993K)
2048 102400 1 fat32lba [active] (50M)
104448 468757680 2 freebsd (224G)
=> 0 468757680 da0s2 BSD (224G)
0 128 - free - (64K)
128 468757552 1 freebsd-ufs (224G)
Reviewing the alignments (one is differently
aligned than the others):
The first is good:
2048 102400 1 fat32lba [active] (50M)
aligns to 512*2048 == 1 MiByte.
The second is likely good:
104448 468757680 2 freebsd (224G)
aligns to 512*104448 == 51 MiByte, so a 1 MiByte multiple
as the alignment.
But the 3rd is less aligned (the freebsd-ufs line):
104448 468757680 2 freebsd (224G)
=> 0 468757680 da0s2 BSD (224G)
0 128 - free - (64K)
128 468757552 1 freebsd-ufs (224G)
aligns to 512*104448 + 512*128 but 512*128 is a
64 KiByte offset, so: 51 MiByte + 64 KiByte.
This is not 1 MiByte aligned but is 64 KiByte aligned.
Is that the intended alignment for the freebsd-ufs
area?
===
Mark Millard
marklmi at yahoo.com