Я пытался создать новый образ Raspbian с другим ядром (с поддержкой CAN) и с установленным Python 3.3. Вместо того, чтобы делать все это на Raspberry Pi, я подумал, что было бы интересно сделать это на компьютере (следуя этим инструкциям ). Однако, как только я смонтировал образ и был готов к работе, у меня быстро закончилось место на диске. Я предполагаю, что это потому, что размер изображения достаточно велик, и ожидается, что пользователь изменит размер файловой системы после его записи на SD-карту.
Можно ли изменить размер образа и файловой системы перед записью на SD-карту, чтобы я мог выполнить больше настроек без недостатка места?
Ответы:
Это как изменить размер файла необработанного изображения. Я знаю, это звучит глупо упрощенно, но это будет работать.
Создайте пустое изображение, размер которого вы хотите увеличить оригинал (в моем примере я использую 5 ГБ);
Добавьте это к исходному изображению:
Измените размер файловой системы, которая находится в конце диска (обычно это та, которую вы хотите больше):
Выполнено! Теперь ваш диск должен быть на 5 ГБ больше!
источник
fdisk -l file.img
(это было 122880), а затемlosetup --offset $((122880 * 512)) /dev/loop0 file.img
. Тогда я мог бы использоватьresize2fs
на/dev/loop0
и убирать сlosetup -d /dev/loop0
. Если вы обновите свой ответ, чтобы включить его, я отмечу его как принятый ответ. Спасибо, что указал мне правильное направление.resize2fs
on,/dev/loop0
но получил при запуске панику ядра, говоря, что размер суперблока и размер раздела не совпадают:The filesystem size (according to the superblock) is 483840 blocks The physical size of the device is 458240 blocks
вы сталкивались с чем-то вроде этого?Это обобщение ответов выше и в другом месте, которые работали для меня - создайте резервную копию вашего изображения на случай, если вы допустите ошибку:
Сначала увеличьте размер файла изображения (здесь мы добавляем 1 ГБ в конец):
Далее сопоставьте все изображение как устройство цикла, чтобы мы могли тыкать в таблицу разделов
Для дальнейшего использования сделаем это:
Вывод выглядит так:
Теперь мы переделаем последний раздел, удалив его, а затем воссоздадим в том же начальном месте, того же типа, но в другом конечном месте. Так что обратите внимание на столбец «Пуск» для loop0p2 (раздел 2 - раздел Linux) - мы будем использовать его позже - его 122880 здесь.
Введите следующее - они безопасны для ввода - ничего постоянного не произойдет, пока вы не прочитаете мое объяснение, которое следует:
p
d
2
n
p
2
122880
p
Шаг 1 - распечатать текущую таблицу. Шаги 2-3 - удалить раздел 2, Шаги 4-8 - заново создать раздел 2 с новой конечной точкой (по умолчанию это конец изображения), Шаг 9 - распечатать новую таблицу.
Предполагая, что ваша вновь напечатанная таблица идентична исходной таблице, за исключением значения «Конец» и «Блоки» (т. Е. Размер изменился), который вы готовы зафиксировать.
Введите,
w
чтобы подтвердить изменения, затем нажмите,q
чтобы выйти.Вы можете удалить это петлевое устройство, мы сделаем другое для второго раздела. Запомните начальное смещение, которое вы отметили и использовали выше - мы будем использовать его снова:
Это создаст новое отображение для
/dev/loop0
указания только на раздел 2 - для ссылки 512 - размер сектора, который вы можете видеть в первомfdisk
выводе.Теперь измените размер раздела, чтобы заполнить доступное пространство:
Готово - теперь убираюсь:
источник
Для тех, у кого работает Oracle VM VirtualBox, это довольно просто.
На Windows-машине все идет следующим образом:
input.img
здесь изображение, размер которого должен быть уменьшен, иoutput.img
является окончательным изображением - в этом примере определено, что оно имеет размер 7000 МБ.Надеюсь, что это помогает немного.
источник
Kernel panic - not syncing: VFS: Unable to mount rootfs on unknown-block(179,2)
Это как изменить размер файла необработанного изображения. Я знаю, это звучит глупо упрощенно, но это будет работать.
Создайте пустое изображение, размер которого вы хотите увеличить оригинал (в моем примере я использую 5 ГБ);
Добавьте это к исходному изображению:
Далее происходит изменение размера раздела и файловой системы. Сначала получите смещение раздела;
Результаты в таблице, как это:
Обратите внимание на начальное смещение второго раздела
Наконец размонтировать / dev / loop
Выполнено! Теперь ваш диск должен быть на 5 ГБ больше!
источник