Раздел не монтируется – отображается меньшего размера, чем есть на самом деле.

Вопрос или проблема

Я создаю бинарный образ из различных разделов Android с помощью dd. Затем я монтирую образ с помощью losetup и mount. Большинство разделов монтируются правильно, кроме последнего (userdata).

# sudo fdisk -l user.bin
Диск user.bin: 14.68 GiB, 15758000128 байт, 30777344 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 03B183AF-9DB5-4EFC-805E-9097AE08BEF0

Устройство      Начало      Конец  Секторы  Размер Тип
user.bin1     55552    57599     2048    1M Файловая система Linux
user.bin2     57600    59647     2048    1M Файловая система Linux
user.bin3     59648    61695     2048    1M Файловая система Linux
user.bin4     61696    63743     2048    1M Файловая система Linux
user.bin5     63744    64255      512  256K Файловая система Linux
user.bin6     64256   129791    65536   32M Файловая система Linux
user.bin7    129792   195327    65536   32M Файловая система Linux
user.bin8    195328  4389631  4194304    2G Файловая система Linux
user.bin9   4389632  8583935  4194304    2G Файловая система Linux
user.bin10  8583936 10681087  2097152    1G Файловая система Linux
user.bin11 10681088 12778239  2097152    1G Файловая система Linux
user.bin12 12778240 12827391    49152   24M Файловая система Linux
user.bin13 12827392 12958463   131072   64M Файловая система Linux
user.bin14 12958464 12978943    20480   10M Файловая система Linux
user.bin15 12978944 12999423    20480   10M Файловая система Linux
user.bin16 12999424 13097727    98304   48M Файловая система Linux
user.bin17 13097728 13163263    65536   32M Файловая система Linux
user.bin18 13163264 13327103   163840   80M Файловая система Linux
user.bin19 13327104 13329151     2048    1M Файловая система Linux
user.bin20 13329152 13331199     2048    1M Файловая система Linux
user.bin21 13331200 13339391     8192    4M Файловая система Linux
user.bin22 13339392 13341439     2048    1M Файловая система Linux
user.bin23 13341440 13472511   131072   64M Файловая система Linux
user.bin24 13472512 30777310 17304799  8.3G Файловая система Linux

Выше показан раздел объемом 8.3 ГБ. Затем я использую sudo losetup -vP -f user.bin, и после этого я проверяю снова:

# sudo fdisk -l /dev/loop28p24
Диск /dev/loop28p24: 2.88 GiB, 3089117184 байт, 6033432 сектора

Размер уменьшен!! И когда я пытаюсь смонтировать его, я получаю ошибку, и dmesg показывает:

[28136.901092] loop29: обнаружено изменение емкости с 0 на 6033432
[28136.921405] EXT4-fs (loop29): плохая геометрия: количество блоков 1572864 превышает размер устройства (754179 блоков)

Почему losetup загружает это как меньший раздел, чем он есть?

Правка: добавлена дополнительная информация выше по комментарию и некоторая информация ниже:

ls -l user.bin 
-rw-r--r-- 1 root root 15758000128 Ноя  5 21:45 user.bin

Ответ или решение

Причины проблемы с размерами раздела и его монтированием

На основании вашего описания проблемы с монтированием раздела userdata из бинарного образа user.bin, можно выделить несколько возможных причин. Проанализируем информацию, предоставленную вами, и постараемся выяснить, что могло привести к этой ошибке.

1. Ошибка в работе losetup

При использовании losetup необходимо учитывать, что эта команда может неправильно интерпретировать размеры разделов, если на уровне образа (user.bin) имеются несоответствия. В вашем случае, когда вы используете команду sudo losetup -vP -f user.bin, запрос происходит на создание циклического устройства, которое помимо размеров должно корректно обрабатывать таблицы разделов в образе.

Ваша таблица разделов показывает, что 24-й раздел занимает 8,3 ГБ. Однако после привязки (mounted) этот раздел отображается как 2.88 ГиБ. Это может указывать на ошибки в самой структуре раздела или несовершенства в его записи.

2. Возможные ошибки в создании образа

Рекомендуется проверить корректность создания бинарного образа с использованием dd. Убедитесь, что вы верно указали параметры, такие как if и of, а также использовали правильные размеры блоков. Некорректные параметры могут привести к неправильной записи данных и, как следствие, порче структуры таблицы разделов.

sudo dd if=/dev/<source> of=user.bin bs=4M status=progress

3. Проблемы с файловой системой раздела

Сообщение об ошибке в выводе dmesg:

EXT4-fs (loop29): bad geometry: block count 1572864 exceeds size of device (754179 blocks)

указывает на то, что файловая система на данном разделе не соответствует указанным размерам. Это может быть связано с несколькими факторами:

  • Неактуальные параметры файловой системы: Если при создании образа были использованы устаревшие параметры, это может стать причиной проблемы с несовпадением размеров.
  • Зачистка пространства: При использовании dd важно убедиться, что все области раздела корректно инициализированы. Файловая система может "недознать" доступное место при некорректной записи или копировании.

4. Исправление ошибки

Для устранения проблемы рекомендуем выполнить следующие шаги:

  1. Переосоздание образа: Возможно, существует необходимость заново создать образ раздела с корректными параметрами.

  2. Используйте parted: При необходимости проверьте структуру разделов с помощью parted. Это может помочь выявить потенциальные проблемы с самим образом или таблицей разделов.

    sudo parted user.bin print
  3. Проверка файловой системы: Попробуйте выполнить проверку и восстановление файловой системы на данном разделе. Это может помочь исправить ошибки и привести к корректному изменению размера.

    sudo fsck.ext4 /dev/loop28p24
  4. Создание нового раздела: Если ничего не помогает, возможно, стоит рассмотреть возможность создания нового образа с правильной таблицей разделов и инициализацией всех параметров.

Заключение

Ситуация, когда раздел не монтируется должным образом из-за несоответствующей интерпретации размеров, требует внимательного подхода между созданием образа и его последующим использованием. Следуя приведенным рекомендациям, вы сможете устранить возникшие проблемы и обеспечить стабильное и корректное использование ваших данных.

Оцените материал
Добавить комментарий

Капча загружается...