Date: Thu, 01 Apr 2010 15:23:11 +0200 From: Bartosz Stec <bartosz.stec@it4pro.pl> To: freebsd-current@freebsd.org, freebsd-fs@freebsd.org Subject: gpart failing with no such geom after gpt corruption Message-ID: <4BB49E3F.7070506@it4pro.pl>
next in thread | raw e-mail | index | archive | help
Hello ZFS and GPT hackers :) I'm sending this message to both freebsd-current and freebsd-fs because it doesn't seems to be a CURRENT-specific issue. Yesterday I tried to migrate my mixed UFS/RAIDZ config to clean RAIDZ with GPT boot. I've following mostly this guide: http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/RAIDZ1 I'm using CURRENT on 3x40GB HDDs (ad0-ad3) and additional 250GB HDD has been used for data migration (ad4). Data was copied form RAIDZ to 250GB HDD, GPT sheme was created on 40GB HDDs, then new zpool on them, and finally data went back to RAIDZ. Booting from RAIDZ was succesful, so far so good. After a while I've noticed some SMART errors on ad1, so I've booted machine with seatools for dos and made long test. One bad sector was found and reallocated, nothing to worry about. As I was in seatools already, I've decided to adjust LBA size on that disk (seatools can do that), because it was about 30MB larger than the other two, and because of that I had to adjust size of freebsd-zfs partition on that disk to match exact size of others (otherwise 'zpool create' will complain). So LBA was adjusted and system rebooted. Yes, I was aware that changing disk size probably end with corrupted GPT and data loss, but it doesn't seem to be a big deal for me as far as 2/3 of zpool is alive, because I can always recreate gpt and resilver ad1. Unfortunately it wasn't so easy. First of all system booted, and as I expected kernel message shows GPT error on ad1. Zpool was degraded but alive and kicking. However, when I tried to execute any gpart command on ad1, it return: ad1: no such geom ad1 was present under /dev, and it could be accessed by sysinstall/fdisk, but no with gpart. I've created bsd slice with sysinstall on ad1 and rebooted, with hope that after reboot I could acces ad1 with gpart and recreate GPT scheme. Another surprise - system didn't boot at all, rebooting after couple of seconds in loader (changing boot device didn't make a difference). Only way I could boot system at this moment was connecting 250GB HDD which fortunately still had data from zpool migration and boot from it. Another surprise - kernel was still complaining about GPT corruption on ad1. I had no other ideas so I ran dd if=/dev/zero of=/dev/ad1 bs=512 count=512 to clear beginning of the hdd. After that disk was still unaccesible fromt gpart, so I tried sysinstall/fdisk againt to create standard BSD partitioning scheme and rebooted system. After that finally gpart started to talk with ad1 and GPT scheme and zpool has been recreated and work as it supposed to. Still, how can we clear broken GPT data after it got corrupted? Why gpart has been showing "ad1: no such geom", and how can we deal with this problem? Finally, why gptzfsboot failed with GPT corrupted on other disk after trying to fix it, while it booted at first place? Or maybe changing LBA size of already partitioned HDD is extreme case, and the only way these problems could be triggered ;)? Cheers! -- Bartosz Stec
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BB49E3F.7070506>