Что: bacf08f6a5cdd17e07b5ad14070c61674ed7be20 Когда: 2023-08-21 09:38:30+03:00 ------------------------------------------------------------------------ Темы: bsd hate ------------------------------------------------------------------------ Битый GPT не вывести Нужно было ужать образ жёсткого диска. Сделал resize раздела, поменял его размер. В конце остаётся много пустого места. Если скопировать такой образ простой dd, то FreeBSD не хочет показывать и загружать таблицу разделов, выводя в dmesg что GPT вообще плох плох и никакой recovery вам не поможет. Если переносить образ на диск большего размера -- то в dmesg будет предупреждение что второй GPT не находится в конце диска, но это чинится одной командой. А тут первый GPT указывает на LBA выходящего за пределы диска. Всякие kern.geom.part.check_integrity не помогают. Хотя я ведь точно знаю что первый GPT исправен и просто нужно сделать его копию и поправить её адрес. Имея на руках оригинальный диск, можно сделать gpart backup, который выведет в простом текстовом формате разметку, а дальше gpart recover-ом записать её на уменьшенный диск. Но вот backup берёт информацию из GEOM-а, который на маленьком диске отказывается подгружать информацию о разделах и поэтому backup не сработает. И вот не нашёл вообще никаких средств в самой ОС чтобы заставить показать хоть в каком-нибудь виде информацию о GPT разделах, чтобы хотя бы вручную восстановить этот backup файлик и с него уже валидный GPT записать. То есть мне просто нужно нечто, что могло бы прочитать 32 сектора диска в начале, интерпретировало ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%91%D0%B8%D1%82%D1%8B%D0%B9%20GPT%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8%20%28bacf08f6a5cdd17e07b5ad14070c61674ed7be20%29 ------------------------------------------------------------------------ комментарий 0: From: kmeaw Date: 2023-08-21 07:47:10Z А работает ли на FreeBSD gdisk (он же GPT fdisk, https://www.rodsbooks.com/gdisk/)? Может быть им будет проще сделать задуманное, чем gpart? Там есть --backup и --load-backup, которые читают GPT сами, без использования информации от ядра. ------------------------------------------------------------------------ комментарий 1: From: Sergey Matveev Date: 2023-08-21 07:51:51Z *** kmeaw [2023-08-21 08:42]: >А работает ли на FreeBSD gdisk Блин, забыл об этом дописать, поторопился. Да, именно его из портов поставил и всё как и хотел: предупреждает о битом GPT, но позволяет вывести разделы которые смог отпарсить, что достаточно для восстановления. ------------------------------------------------------------------------ комментарий 2: From: kmeaw Date: 2023-08-21 07:57:12Z Ещё вижу в man 8 gpt: gpt [-Hnqrv] [-m mediasize] [-s sectorsize] [-T timestamp] command [command_options] device gpt resizedisk [-s size] [-q] The resizedisk command allows the user to resize a disk. … If the backup copy no longer exists due to the medium shrinking, then a new backup copy will be created using the primary copy. The -s option allows the new size to be specified, otherwise the partition will be increased to the maximum available size. Что будет, если попробовать gpt -m $SIZE resizedisk или gpt resizedisk -s $SIZE ? ------------------------------------------------------------------------ комментарий 3: From: Sergey Matveev Date: 2023-08-21 08:02:27Z *** kmeaw [2023-08-21 08:52]: >Ещё вижу в man 8 gpt: А у меня такого man/команды нет. Судя по всему, это какая-то очень старая команда, которая в NetBSD ещё есть, а в FreeBSD была давным давно, только когда начинали поддерживать GPT. А gpart явно говорит что только destroy и recover может выполнить с битым GPT: When the kernel detects corrupt metadata, it marks this table as corrupt and reports the problem. destroy and recover are the only operations allowed on corrupt tables. ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0