Wyłącz automatyczne rozszerzanie systemu plików w nowym obrazie Jessie 2016-05-10

12

Teraz, gdy flashujesz nowy obraz Jessie (wydany 2016-05-10) na karcie SD i uruchamiasz się przy pierwszym uruchomieniu, automatycznie rozszerza system plików na całej karcie SD. Chcę zatrzymać ten skrypt. Powód, dla którego chcę to zrobić, ponieważ podczas tworzenia kopii zapasowej obrazu z karty SD zużywa 16 GB miejsca na dysku i chcę zaoszczędzić to miejsce. Używam karty SD 16 GB.

użytkownik3601278
źródło
Jak wykonać kopię zapasową karty?
Milliways
Wybierz opcję odczytu w Win32DiskImager i tworzy obraz kopii zapasowej karty SD
user3601278
2
Nie mogę powiedzieć, że jestem zaznajomiony z Win32DiskImager, ale jeśli jest podobny do innych obrazków, wynikowy obraz będzie miał rozmiar obrazowanego urządzenia - w tym przypadku rozmiar karty SD. Jest to niezależne od wielkości partycji. Jeśli przeszukasz tę stronę, znajdziesz setki podobnych pytań, chociaż większość „rozwiązań” dotyczy Unix / Linux.
Milliways
Uważam też, że to automatyczne rozszerzanie może potencjalnie utrudniać tworzenie kopii standardowej konfiguracji roboczej do dystrybucji (w przeszłości użyłem „trucate”, aby odciąć obraz nieco powyżej nierozwiniętego rozmiaru, nawet jeśli „dd” zrobił obraz całej karty SD łącznie z pustą częścią). Czy jessie lite nie robi rozszerzenia?
paddyg

Odpowiedzi:

11

Wygląda na to, że będzie to część najnowszych aktualizacji; Wersje Desktop i Lite:

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

Podczas flashowania nowego obrazu Raspbian system plików zostanie automatycznie rozszerzony w celu wykorzystania całego miejsca na karcie przy pierwszym uruchomieniu.

W systemie Ubuntu możesz edytować obraz, aby zatrzymać automatyczną rozbudowę systemu plików.

Oto przykład z użyciem 2016-05-10-raspbian-jessie-lite.img.

Spróbuj tego:

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

Otrzymasz te informacje:

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

Tak więc dla sekcji rozruchowej twoje przesunięcie wynosi (Start * 512) = 8192 * 512 = 4194304

W przypadku systemu plików Raspbian przesunięcie wynosi (Start * 512) = 137216 * 512 = 70254592

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

Jeśli chcesz wyświetlić / edytować system plików Raspbian. Nie potrzebne.

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

Następnie musisz zmodyfikować plik ./boot/cmdline.txt.

sudo gedit ./boot/cmdline.txt

Z:

dwc_otg.lpm_enable = 0 konsola = serial0,115200 konsola = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 winda = termin fsck.repair = tak rootwait cichy init = / usr / lib / raspi-config / init_resize.sh

Do:

dwc_otg.lpm_enable = 0 konsola = serial0,115200 konsola = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 winda = termin fsck.repair = tak rootwait cichy

sudo umount ./boot

Jeśli podłączyłeś system plików Raspbian:

sudo umount ./test

Teraz sflashuj nowy obraz na kartę SD.

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

Nie rozszerzy się automatycznie po uruchomieniu na twoim Pi.


Lub możesz sflashować oryginalny obraz na kartę SD.

Zanim podłączysz go do swojego Raspberry Pi.

Edytuj plik: /boot/cmdline.txt

Usuń następujący tekst: init=/usr/lib/raspi-config/init_resize.sh

Joe
źródło
Właśnie tego szukałem, dziękuję za udostępnienie!
Gergely Lukacsy
2

Msgstr "Usuń następujący tekst:. init=/usr/lib/raspi-config/init_resize.shTo już nie działa z wydaniem Stretch (nie ma parametru init do usunięcia)".

Usuń /etc/init.d/resize2fs_once.

bstipe
źródło
Parametr init nadal istnieje w Raspbian Stretch. Konieczne jest usunięcie zarówno initparametru, jak i resize2fs_oncepliku.
Scott
2018-11-13-raspbian-stretch-lite zdecydowanie ma wywołanie init_resize.sh w boot / cmdline.txt, dopóki nie uruchomisz się po raz pierwszy. Skrypt usuwa się z cmdline.txt
Andy
0

To już nie działa z wydaniem Stretch (nie ma parametru init do usunięcia).

Skrypt pishrink.sh ( pobierz skrypt z github ) akceptuje flagę -s, która zapobiegnie rozszerzeniu przy następnym restarcie. Do uruchomienia skryptu potrzebujesz maszyny z systemem Linux lub maszyny wirtualnej. Skrypt działa poprzez przepisanie /etc/rc.local w celu rozwinięcia systemu plików (domyślnie) lub pozostawienia go takim, jakim jest (jeśli podano flagę -s).

Na laptopie z systemem Windows 10 możesz użyć win32diskimager, aby pobrać obraz z karty SD, a ja użyłem obrazu Lubuntu z osboxes.org, aby uruchomić pod VirtualBox.

jflamy
źródło