[Bug 271262] bsdinstaller in AutoZFS + MBR mode always wipes disklabel - rendering system non-bootable
Date: Sat, 06 May 2023 06:05:12 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271262
--- Comment #2 from Henryk Paluch <hpaluch@seznam.cz> ---
Additional details:
The original installation disklabel looks that way:
(the da0s1a was create by install using: gpart add -i 1 -t freebsd-zfs -s
2147483648b "da0s1")
# /dev/da0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 4194304 0 ZFS
b: 4194304 4194304 swap
c: 18874304 0 unused 0 0 # "raw" part, don't
edit
d: 4194304 8388608 ZFS
Please notice that da0s1 starts at 0 - so extreme care must be taken
to not overwrite disklabel on 2nd sector (byte offest from 512 to 1023).
===========================================================================
Using development machine with 2nd disk and GDB I have found following
stacktrace (by putting breakpoint just at __sys_write):
reakpoint 1.2, _write () at _write.S:4
4 _write.S: No such file or directory.
(gdb) bt
#0 _write () at _write.S:4
#1 0x00000008011af1f6 in __thr_write (fd=6, buf=0x7fffffffb040, nbytes=4096)
at /usr/src/lib/libthr/thread/thr_syscalls.c:618
#2 0x000000000104c900 in zero_label (path=path@entry=0x7fffffffc190
"/dev/da1s1a")
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c:905
#3 0x000000000104b5f0 in make_disks (zhp=zhp@entry=0x0, nv=0x801c10420)
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c:1048
#4 0x000000000104b333 in make_disks (zhp=zhp@entry=0x0,
nv=nv@entry=0x801c1d080)
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c:1070
#5 0x000000000104b8e1 in make_root_vdev (zhp=0x6, zhp@entry=0x0,
props=<optimized out>, force=force@entry=1,
check_rep=<optimized out>, replacing=replacing@entry=B_FALSE,
dryrun=dryrun@entry=B_FALSE, argc=1,
argv=0x801c36040) at
/usr/src/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c:1864
#6 0x0000000001036ef9 in zpool_do_create (argc=<optimized out>,
argv=<optimized out>)
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_main.c:1587
#7 0x00000000010364b6 in main (argc=9, argv=0x7fffffffeb38)
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_main.c:10755
The problematic code is on
#3 0x000000000104b5f0 in make_disks (zhp=zhp@entry=0x0, nv=0x801c10420)
at /usr/src/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c:1048
Which looks like:
ret = zero_label(udevpath);
if (ret)
return (ret);
Here is source pointer but the line offset is a bit different from what I see
in local sources of 13.2. release:
-
https://cgit.freebsd.org/src/blame/sys/contrib/openzfs/cmd/zpool/zpool_vdev.c?h=releng/13.2#n1080
And this is problem - overwriting disklabel..
--
You are receiving this mail because:
You are the assignee for the bug.