Отключить автоматическое расширение файловой системы в новом образе Джесси 2016-05-10


12

Теперь, когда вы прошиваете новый образ Джесси (выпущен 2016-05-10) на SD-карту и загружаетесь в первый раз, она автоматически расширяет файловую систему на всю SD-карту. Я хочу остановить этот сценарий. Причина, по которой я этого хочу, заключается в том, что при резервном копировании образа с SD-карты оно занимает 16 ГБ дискового пространства, и я хочу сэкономить это пространство. Я использую SD-карту 16 ГБ.


Как вы делаете резервную копию карты?
Milliways

Нажмите опцию чтения в Win32DiskImager, и он создаст резервную копию SD-карты
user3601278

2
Я не могу сказать, что знаком с Win32DiskImager, но если он похож на другие имидж-сканеры, результирующее изображение будет размером с изображаемое устройство - в данном случае размером с SD-карту. Это не зависит от размера разделов. При поиске на этом сайте вы найдете сотни похожих вопросов, хотя большинство «решений» ориентированы на Unix / Linux.
Milliways

Я также вижу, что это автоматическое расширение потенциально затрудняет создание копий стандартной рабочей установки для распространения (в прошлом я использовал «trucate», чтобы отрубить изображение чуть выше нерасширенного размера, даже если «dd» делал изображение). всей SD-карты, включая пустую часть). Джесси Лайт не делает расширение?
паддыг

Ответы:


11

Похоже, это будет частью новейших обновлений; Версии для ПК и Lite:

https://www.raspberrypi.org/blog/another-update-raspbian/

При перепрошивке нового образа Raspbian файловая система автоматически расширяется, чтобы использовать все пространство на карте при первой загрузке.

В Ubuntu вы можете отредактировать изображение, чтобы остановить автоматическое расширение файловой системы.

Вот пример использования 2016-05-10-raspbian-jessie-lite.img.

Попробуй это:

fdisk -lu ./2016-05-10-raspbian-jessie-lite.img

Вы получите эту информацию:

Device Boot                             Start     End     Blocks    Id  System

2016-05-10-raspbian-jessie-lite.img1    8192      137215  64512     c   W95 FAT32 (LBA)

2016-05-10-raspbian-jessie-lite.img2  137216     2707455  1285120   83  Linux

Таким образом, для загрузочного раздела ваше смещение (Старт * 512) = 8192 * 512 = 4194304

Для файловой системы Raspbian ваше смещение (Start * 512) = 137216 * 512 = 70254592

mkdir boot
sudo mount -t vfat -o loop,offset=4194304 2016-05-10-raspbian-jessie-lite.img boot

Если вы хотите просмотреть / отредактировать Raspbian Filesystem. Не нужно, хотя.

mkdir test
sudo mount -t ext4 -o loop,offset=70254592 2016-05-10-raspbian-jessie-lite.img test

Затем вам нужно изменить файл ./boot/cmdline.txt.

sudo gedit ./boot/cmdline.txt

Из:

dwc_otg.lpm_enable = 0 console = serial0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = да rootwait тихий init = / usr / lib / raspi-config / init_resize.sh

Для того, чтобы:

dwc_otg.lpm_enable = 0 console = serial0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait quiet

sudo umount ./boot

Если вы смонтировали файловую систему Raspbian:

sudo umount ./test

Теперь прошейте новое изображение на вашу SD-карту.

  • 2016-05-10-raspbian-Jessie-lite.img

Он не будет автоматически расширяться после загрузки вашего Pi.


Или вы можете прошить оригинальное изображение на SD-карту.

Прежде чем подключить его к Raspberry Pi.

Отредактируйте файл: /boot/cmdline.txt

Удалите следующий текст: init=/usr/lib/raspi-config/init_resize.sh


Это то, что я искал, спасибо, что поделились!
Гергели Лукачси

2

Msgstr "Удалить следующий текст:. init=/usr/lib/raspi-config/init_resize.shЭто больше не работает с выпуском Stretch (нет параметра init для удаления)".

Удалить /etc/init.d/resize2fs_once.


Параметр init все еще существует в Raspbian Stretch. Удаление как initпараметра, так и resize2fs_onceфайла необходимо.
Скотт

2018-11-13-raspbian-stretch-lite определенно вызывает init_resize.sh в boot / cmdline.txt, пока вы не загрузитесь в первый раз. Скрипт удаляет себя из cmdline.txt
Энди

0

Это больше не работает с выпуском Stretch (нет параметра init для удаления).

Сценарий pishrink.sh ( скачать скрипт из github ) принимает флаг -s, который предотвращает расширение при следующей перезагрузке. Вам нужен компьютер с Linux или виртуальная машина для запуска сценария. Сценарий работает путем переписывания /etc/rc.local, чтобы либо расширить файловую систему (по умолчанию), либо оставить ее как есть (если указан флаг -s).

На ноутбуке с Windows 10 вы можете использовать win32diskimager для получения образа с вашей SD-карты, а я использовал образ Lubuntu с osboxes.org для запуска под VirtualBox.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.