как усечь файл образа диска неиспользуемого места, не повреждая таблицу разделов GPT (закончите указатель),

Много информации о взятии изображения диска и уменьшения корневого (бионического) раздела файловой системы и затем усечения изображения для удаления части, которая стала свободным пространством. Как https://softwarebakery.com//shrinking-images-on-linux

Таким образом, существует в основном три шага. Используйте resize2fs для уменьшения файловой системы на разделе, затем уменьшите размер раздела также. Затем наконец удалите теперь неиспользуемое место в файле изображения.

Это - третья первая часть, имею проблему с. Каждый раз я пробую dd или усекаю все разделы изображения, удалены, как будто таблица разделов GPT в файле изображения была повреждена.

Вот исходное изображение

GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk rock64-base.img: 30310400 sectors, 14.5 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 30 sectors (15.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              64            8063   3.9 MiB     8300  loader1
   2            8064            8191   64.0 KiB    8300  reserved1
   3            8192           16383   4.0 MiB     8300  reserved2
   4           16384           24575   4.0 MiB     8300  loader2
   5           24576           32767   4.0 MiB     8300  atf
   6           32768          262143   112.0 MiB   0700  boot
   7          262144        30310366   14.3 GiB    8300  root

Затем после сначала два шага

Found valid GPT with protective MBR; using GPT.
Disk test.img: 30310400 sectors, 14.5 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 23555002 sectors (11.2 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              64            8063   3.9 MiB     8300  loader1
   2            8064            8191   64.0 KiB    8300  reserved1
   3            8192           16383   4.0 MiB     8300  reserved2
   4           16384           24575   4.0 MiB     8300  loader2
   5           24576           32767   4.0 MiB     8300  atf
   6           32768          262143   112.0 MiB   0700  boot
   7          262144         6755394   3.1 GiB     8300  primary

Вы видите, что корневой раздел файловой системы был уменьшен до 3.1G

Я могу загрузить то прекрасное изображение. Я могу отложить его на SD-карте и загрузить мое устройство. Таким образом, шаги 1 и 2 прекрасны.

enter image description here

ТЕПЕРЬ...

если я завершаю процесс, делающий 'усеченный - size= $ [(6755394 +1) *512] 'test.img'

и

GPT fdisk (gdisk) version 1.0.3

Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

Warning! Error 25 reading partition table for CRC check!
Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Disk test2.img: 6755395 sectors, 3.2 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 23555002 sectors (11.2 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              64            8063   3.9 MiB     8300  loader1
   2            8064            8191   64.0 KiB    8300  reserved1
   3            8192           16383   4.0 MiB     8300  reserved2
   4           16384           24575   4.0 MiB     8300  loader2
   5           24576           32767   4.0 MiB     8300  atf
   6           32768          262143   112.0 MiB   0700  boot
   7          262144         6755394   3.1 GiB     8300  primary

enter image description here

Явно усеченный (или dd в этом отношении) не играют хорошо с GPT. Выполнение gdisk на этом файле подтверждает, что gpt повреждается

если я выполняю gdisk на усеченном файле, он сообщает о поврежденном GPT.

Так, очевидно, я пропускаю что-то здесь. По-видимому, когда конец дискового файла изменяется, GPT повреждается или должен быть зафиксирован (не сочетаются). Даже при том, что это прекрасный/существует в конце шага 2. Я бездельничал с gdisk и не мог восстановить его. Помимо этого я хотел решение, которое я мог сделать со сценарием и с этим GPT, он не работает.

Таким образом, потому что это - GPT, делают я должен использовать что-то другое, чем усеченный или dd или сделать я должен "зафиксировать" GPT вручную после усечения.

Вот то, какие gdisk проверяют отчеты

Caution: The CRC for the backup partition table is invalid. This table may
be corrupt. This program will automatically create a new backup partition
table when you save your partitions.

Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.

Problem: Disk is too small to hold all the data!
(Disk size is 6755395 sectors, needs to be 30310400 sectors.)
The 'e' option on the experts' menu may fix this problem.

Problem: GPT claims the disk is larger than it is! (Claimed last usable
sector is 30310366, but backup header is at
30310399 and disk size is 6755395 sectors.
The 'e' option on the experts' menu will probably fix this problem

Partition(s) in the protective MBR are too big for the disk! Creating a
fresh protective or hybrid MBR is recommended.
1
задан 18 November 2019 в 22:02

1 ответ

GPT включает и основную таблицу разделов в начале диска и таблицу резервного раздела в конце диска. (Буквально конец диска - заключительные немного секторов диска.) Таким образом, когда Вы усеченный образ диска, Вы удалили таблицу резервного раздела. Кроме того, некоторые указатели и метаданные в основной таблице разделов стали недопустимыми, так как они указывали мимо конца (виртуального) диска. Это - большая часть какой v команда в gdisk жаловался на.

Ни одно из этого не означает, что диск полностью повреждается. Пока данные основной таблицы разделов допустимы, gdisk (и большая часть другого GPT разделение инструментов), может восстановиться. В gdisk, Вы ввели бы x для ввода меню экспертов затем введите e перемещать данные таблицы резервного раздела в новый конец диска и затем вводить w записать изменения в диске. (Я рекомендовал бы ввести v снова прежде w в случае, если я пропустил другую проблему; также, посмотрите ниже....),

Обратите внимание, однако, что существует еще одна проблема: Ваш образ диска является 6 755 395 секторами в размере, согласно gdisk; но заключительный сектор последнего раздела в секторе 6,755,394. Это не оставляет достаточно пространства для таблицы резервного раздела (это использует 33 сектора, по умолчанию). Если можно восстановить целый процесс, необходимо, вероятно, уменьшить образ диска меньшей суммой. В противном случае попытайтесь развернуть образ диска на 33*512 (16,896) байты прежде, чем воссоздать таблицу резервного раздела с gdisk.

1
ответ дан 21 December 2019 в 23:54

Другие вопросы по тегам:

Похожие вопросы: