Desativar a expansão automática do sistema de arquivos na nova imagem Jessie 10-05-2016


12

Agora, quando você pisca a nova imagem Jessie (lançada em 10/05/2016) no cartão SD e inicializa pela primeira vez, ela expande automaticamente o sistema de arquivos em todo o cartão SD. Eu quero parar esse script. Razão que eu quero isso é porque ao fazer o backup da imagem do cartão SD, ele consome 16 GB de espaço em disco e eu quero economizar esse espaço. Estou usando um cartão SD de 16 GB.


Como você faz backup do cartão?
Milliways

Bata a opção de leitura em Win32DiskImager e cria uma imagem de backup do SDcard
user3601278

2
Não posso dizer que estou familiarizado com o Win32DiskImager, mas se for como outros criadores de imagens, a imagem resultante será do tamanho do dispositivo fotografado - nesse caso, do tamanho do cartão SD. Isso é independente do tamanho das partições. Se você pesquisar neste site, encontrará centenas de perguntas semelhantes, embora a maioria das "soluções" seja voltada para o Unix / Linux.
Milliways

Também vejo essa expansão automática como potencialmente mais difícil de produzir cópias de uma configuração de trabalho padrão para distribuição (no passado, usei 'trucate' para cortar a imagem um pouco acima do tamanho não expandido, mesmo que 'dd' tenha feito uma imagem de todo o cartão SD, incluindo a parte vazia). Jessie Lite não faz a expansão?
26416 paddyg

Respostas:


11

Parece que isso fará parte das atualizações mais recentes; Versões Desktop e Lite:

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

Ao exibir uma nova imagem Raspbian, o sistema de arquivos será expandido automaticamente para usar todo o espaço no cartão quando for inicializado.

No Ubuntu, você pode editar a imagem para interromper a expansão automática do sistema de arquivos.

Aqui está um exemplo usando 10/05/2016-raspbian-jessie-lite.img.

Tente o seguinte:

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

Você obterá essas informações:

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

Portanto, para a seção de inicialização, seu deslocamento é (Iniciar * 512) = 8192 * 512 = 4194304

Para o sistema de arquivos Raspbian, seu deslocamento é (Iniciar * 512) = 137216 * 512 = 70254592

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

Se você deseja visualizar / editar o sistema de arquivos Raspbian. Não é necessário.

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

Então você precisa modificar o arquivo ./boot/cmdline.txt.

sudo gedit ./boot/cmdline.txt

A partir de:

dwc_otg.lpm_enable = 0 console = serial0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevador = prazo final fsck.repair = sim rootwait quiet init = / usr / lib / raspi-config / init_resize.sh

Para:

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

sudo umount ./boot

Se você montou o sistema de arquivos Raspbian:

sudo umount ./test

Agora, atualize a nova imagem no seu cartão SD.

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

Ele não será expandido automaticamente após a inicialização do seu Pi.


Ou você pode piscar a imagem original no seu cartão SD.

Antes de conectá-lo ao seu Raspberry Pi.

Edite o arquivo: /boot/cmdline.txt

Remova o seguinte texto: init=/usr/lib/raspi-config/init_resize.sh


Era isso que eu estava procurando, obrigado por compartilhar!
Gergely Lukacsy

2

"Remova o seguinte texto:. init=/usr/lib/raspi-config/init_resize.shIsso não funciona mais com a versão Stretch (não há parâmetro init para remover)".

Retire /etc/init.d/resize2fs_once.


O parâmetro init ainda existe no Raspbian Stretch. A remoção do initparâmetro e do resize2fs_oncearquivo é necessária.
1776 Scott

2018-11-13-raspbian-stretch-lite definitivamente tem a chamada para init_resize.sh em boot / cmdline.txt até você inicializar pela primeira vez. O script se remove do cmdline.txt
Andy

0

Isso não funciona mais com a versão Stretch (não há parâmetro init para remover).

O script pishrink.sh ( download do script do github ) aceita um sinalizador -s que impedirá a expansão na próxima reinicialização. Você precisa de uma máquina Linux ou virtual para executar o script. O script funciona reescrevendo /etc/rc.local para expandir o sistema de arquivos (padrão) ou deixá-lo como está (se o sinalizador -s for fornecido).

Em um laptop com Windows 10, você pode usar o win32diskimager para obter a imagem do seu cartão SD, e eu usei uma imagem do Lubuntu em osboxes.org para executar no VirtualBox.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.