From bacf08f6a5cdd17e07b5ad14070c61674ed7be20 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 21 Aug 2023 09:38:30 +0300 Subject: [PATCH] =?utf8?q?=D0=91=D0=B8=D1=82=D1=8B=D0=B9=20GPT=20=D0=BD?= =?utf8?q?=D0=B5=20=D0=B2=D1=8B=D0=B2=D0=B5=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Нужно было ужать образ жёсткого диска. Сделал 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 сектора диска в начале, интерпретировало -- 2.48.1