Raspbian에서이를 담당하는 두 가지 메커니즘이 있습니다. 가장 좋은 아이디어는 두 파트가 활성화 된 경우 두 파트를 모두 관리하는 것입니다.
첫 번째는 원본에 /boot/cmdline.txt
다음이 포함되어 있다는 것입니다.
init=/usr/lib/raspi-config/init_resize.sh
루트 파티션에서 해당 경로가있는 스크립트를 참조 하며 부팅시 초기화 프로세스 로 사용됩니다 . 이 비트가 없으면 기본적으로 커널에 내장 된 값이되며 /sbin/init
이는 Raspbian에서에 대한 심볼릭 링크 /lib/systemd/systemd
입니다.
의 해당 부분을 제거 cmdline.txt
하면 시스템이 정상적으로 부팅됩니다.
스크립트가 실제로하는 일은 SD 카드 의 파티션 크기를 조정하는 것 입니다. 이것은 크기 조정에서 별개의 과정입니다 파일 시스템 파티션에 한 다음에 일어날 것입니다.
발생하는 방식은 시스템이 즉시 정상적으로 재부팅되고 (systemd를 통해) init.d
스크립트가 조기에 트리거되도록 설정되어 있으며 두 번째 파티션에서 제거되어야합니다.
/etc/init.d/resizefs_once
그리고 그것에 대한 상징적 인 링크는 제거되어야합니다.
/etc/rc3.d/S01resizefs_once
원하는 경우 나중에 사용할 수 있도록 사본을 보관할 수 있지만 raspi-config
다시 작성할 수 있습니다 ( raspi-config
쉘 스크립트에 포함되어 있음 ). 실제로 실행되면 자체 삭제되므로 다시 발생하지 않습니다.
또한 새로 크기가 조정 된 파티션에서 파일 시스템의 크기를 조정합니다.
하나 또는 다른 부분 만 발생해도 피해를 입지 않아야합니다. 첫 번째 경우에는 확대 된 파티션을 채우지 않는 파일 시스템으로 끝나고 두 번째 경우 파일 시스템이 이미 파티션을 채우므로 아무 일도 일어나지 않습니다.
나중에 raspi-config
파일 시스템을 확대하는 데 사용 하는 경우 파티션 크기를 즉시 조정 한 다음 init 스크립트를 설정합니다 (이미 언급 한대로).
cmdline.txt
첫 번째 파티션의 편집 은 VFAT 파티션이므로 모든 컴퓨터에서 간단합니다. init.d
파일을 제거 하려면 ext4 파일 시스템에 액세스하고 편집 할 수있는 시스템이 필요합니다.
대신 카드를 굽기 전에 이미지 파일 자체에 대해 두 작업을 모두 수행 할 수 있습니다. GNU / Linux 시스템에서 Raspbian 이미지를 마운트하고 수정 하려면 여기를 참조하십시오 . 가 Windows 용 병렬 Q & A는 .
이것은 가역적이지만 첫 번째 메커니즘에는 두 번째 메커니즘을 자동으로 스테이징하는 것이 포함되지 않으므로 방금 설명한대로 메커니즘의 두 부분을 모두 다시 배치해야합니다.
- 해당 스크립트의 오류 메시지는 루트 파일 시스템의 크기를 조정하지 못했다고 주장함으로써 이러한 용어를 혼동 할 수 있지만, 실제로 실패한 것은 루트 파일 시스템이 있는 파티션의 크기를 조정하는 것 입니다. 하나를 수행해도 다른 하나는 자동으로 수행되지 않습니다.