업데이트: 테스트 결과

업데이트: 테스트 결과

여기에 이미지 설명을 입력하세요.

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, ext3ext4파일 시스템을 지원하므로 SD 카드에 사용되는 파일 시스템이 그 중 하나라면 대답은 다음과 같습니다..

하지만 여러 파티션이 있을 수 있는 전체 카드를 이미지화한 것 같습니다. 이 경우 mount 명령은 한 번에 하나의 파일 시스템만 처리할 수 있으므로 "이미지 파일 마운트"만 수행할 수는 없습니다. 전체 디스크 이미지에서 파티션 테이블은 일반적으로 디스크 시작 부분의 일부 공간을 차지하므로 전체 디스크 이미지를 직접 마운트하려고 하면 이미지의 첫 번째 파일 시스템에 액세스하지 못할 수도 있습니다.

시스템에 losetup해당 -P옵션을 지원하는 명령이 있는 경우 를 수행하면 이미지 파일의 각 파티션에 대해 하나씩 장치 losetup -P /dev/loop0 rpi4_Ubuntu18.1_64GB.image가 제공됩니다 . 그런 다음 각 파티션 장치를 마운트하고 실행한 다음 루프 장치를 마운트 해제하고 분리할 수 있습니다./dev/loop0p1/dev/loop0p2zerofreelosetup -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메인 루프 장치를 제거하는 두 단계가 필요합니다.

관련 정보