Ubuntu 16.04: 다음 명령을 사용하여 64GB SD 카드 이미지를 생성합니다.
date; sudo sh -c 'pv /dev/mmcblk0 >rpi4_Ubuntu18.1_64GB.image'; date
Ubuntu 18.1이 설치된 rasbperry pi SD 카드
Ubuntu 16.04 노트북은 다음을 수행할 수 있습니다.
- .image 파일을 마운트하시겠습니까?
- .image 파일의 마운트 지점에서 zerofree를 실행 중이신가요?
- .image 파일을 제거하시겠습니까?
다음 명령을 사용하여 이미지 파일을 SD 카드에 복원하고 카드를 처리할 수 있다는 것을 알고 있습니다.자유도 제로그리고 다시 이미지를 캡쳐해 보세요. 여러 개의 .image 파일을 SD 카드에 복원하지 않고도 처리할 수 있으면 좋을 것 같습니다.
업데이트: 테스트 결과
이미지가 /dev/loop9p2에 성공적으로 마운트되었습니다.
$ sudo losetup -P /dev/loop9 rpi4_Ubuntu18.1_64GB.image
$ ls -l /dev/loop9*
brw-rw---- 1 root disk 7, 9 Feb 2 19:12 /dev/loop9
brw-rw---- 1 root disk 259, 0 Feb 2 19:12 /dev/loop9p1
brw-rw---- 1 root disk 259, 1 Feb 2 19:12 /dev/loop9p2
무실패:
$ zerofree -v /dev/loop9p2
zerofree: failed to open filesystem /dev/loop9p2
제로 릴리스 필요 sudo
:
$ sudo zerofree -v /dev/loop9p2
14346339/14348998/15073019
- 14346339 발견된 0이 아닌 블록의 수
- 14348998 파일 시스템의 사용 가능한 블록 수
- 15073019 파일 시스템의 총 블록 수
보너스: 스크립트를 사용하여 이미지 크기 줄이기피쉬링크
답변1
zerofree
기본 저장 매체에 관계없이 호환되는 파일 시스템에서 실행될 수 있습니다. zerofree
내 Debian 10 시스템 버전은 ext2
, ext3
및 ext4
파일 시스템을 지원하므로 SD 카드에 사용되는 파일 시스템이 그 중 하나라면 대답은 다음과 같습니다.예.
하지만 여러 파티션이 있을 수 있는 전체 카드를 이미지화한 것 같습니다. 이 경우 mount 명령은 한 번에 하나의 파일 시스템만 처리할 수 있으므로 "이미지 파일 마운트"만 수행할 수는 없습니다. 전체 디스크 이미지에서 파티션 테이블은 일반적으로 디스크 시작 부분의 일부 공간을 차지하므로 전체 디스크 이미지를 직접 마운트하려고 하면 이미지의 첫 번째 파일 시스템에 액세스하지 못할 수도 있습니다.
시스템에 losetup
해당 -P
옵션을 지원하는 명령이 있는 경우 를 수행하면 이미지 파일의 각 파티션에 대해 하나씩 장치 losetup -P /dev/loop0 rpi4_Ubuntu18.1_64GB.image
가 제공됩니다 . 그런 다음 각 파티션 장치를 마운트하고 실행한 다음 루프 장치를 마운트 해제하고 분리할 수 있습니다./dev/loop0p1
/dev/loop0p2
zerofree
losetup -d /dev/loop0
losetup
명령이 이 옵션을 지원하지 않는 경우 -P
다른 옵션이 있습니다. kpartx
도구(때로는 별도로 패키지되거나 device-mapper-multipath
도구의 일부로 제공됨)는 개별 파티션에 대한 맵을 생성할 수 있습니다. 이 경우 먼저 losetup /dev/loop0 rpi4_Ubuntu18.1_64GB.image
연결된 루프 장치를 사용한 다음 kpartx -a /dev/loop
감지된 각 파티션에 대해 매핑된 장치를 생성합니다. 이 경우 파티션 장치의 이름 /dev/mapper/loop0p1
은 약간 다르게 지정됩니다. 설치 및 zerofree
프로세스는 동일하지만 파일 시스템을 마운트 해제한 후 정리하려면 먼저 kpartx -d /dev/loop0
파티션 맵 장치를 제거한 다음 losetup -d /dev/loop0
메인 루프 장치를 제거하는 두 단계가 필요합니다.