다음은 64기가 sdcard메모리의 os 이미지를 백업하는 방법을 정리한 것입니다.
리눅스에서 Jetson nano의 64기가 sdcard를 인식시키고 df -h 명령을 하면 다음과 같이 표시됨
df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 30G 23G 5.1G 82% /media/khy2/d560620b-561b-4021-b9ab-ac421ab6e1cc
dd명령으로 sda의 이미지를 jetson.img 파일로 복사한다.
sudo dd if=/dev/sda of=jetson.img status=progress
생성된 jetson.img의 파일 권한을 변경하기 위해 chown 명령어 사용
sudo chown {사용자이름}.{사용자이름} jetson.img
이제 이 이미지를 마운트 하기 위해 losetup -f 명령으로 마운트 가능한 경로(loopX) 확인
$ losetup -f
/dev/loopX
이 경로로 이미지 마운트 하고 gparted로 보기
sudo losetup /dev/loopX jetson.img
sudo partprobe /dev/loopX
sudo gparted /dev/loopX
그러면 아래와 같이 표시됨 (Unallocated 영역을 여기서 삭제할 수 없음)
이제 다시 마운트 해제
sudo losetup -d /dev/loopX
fdisk -l 명령으로 img의 섹터 영역 확인
fdisk -l jetson.img
GPT PMBR size mismatch (62333951 != 125106175) will be corrected by write.
Disk jetson_r1mini_melodic_220904.img: 59.67 GiB, 64054362112 bytes, 125106176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C066C102-48BC-423D-8133-E2F90E371708
Device Start End Sectors Size Type
jetson_r1mini_melodic_220904.img1 28672 62332927 62304256 29.7G Linux filesystem
jetson_r1mini_melodic_220904.img2 2048 2303 256 128K Linux filesystem
jetson_r1mini_melodic_220904.img3 4096 4991 896 448K Linux filesystem
jetson_r1mini_melodic_220904.img4 6144 7295 1152 576K Linux filesystem
jetson_r1mini_melodic_220904.img5 8192 8319 128 64K Linux filesystem
jetson_r1mini_melodic_220904.img6 10240 10623 384 192K Linux filesystem
jetson_r1mini_melodic_220904.img7 12288 13055 768 384K Linux filesystem
jetson_r1mini_melodic_220904.img8 14336 14463 128 64K Linux filesystem
jetson_r1mini_melodic_220904.img9 16384 17279 896 448K Linux filesystem
jetson_r1mini_melodic_220904.img10 18432 19327 896 448K Linux filesystem
jetson_r1mini_melodic_220904.img11 20480 22015 1536 768K Linux filesystem
jetson_r1mini_melodic_220904.img12 22528 22655 128 64K Linux filesystem
jetson_r1mini_melodic_220904.img13 24576 24735 160 80K Linux filesystem
jetson_r1mini_melodic_220904.img14 26624 26879 256 128K Linux filesystem
Partition table entries are not in disk order.
여기서 유효한 파일시스템의 끝지점은 62332927 이므로 truncate 명령으로 (62332927 + 1)*512 바이트 만큼을 남기고 삭제할 수 있다.
단, gpt 파일 시스템의 경우 디스크 영역에 대한 정보를 처음과 끝부분에 저장하므로 파티션의 끝에서 삭제하면 파일시스템이 손상된 것으로 인식된다.
GPT includes both a main partition table at the start of the disk and a backup partition table at the end of the disk. (Literally the end of the disk -- the final few sectors of the disk.) Thus, when you truncated the disk image, you removed the backup partition table. What's more, some of the pointers and metadata in the main partition table became invalid, since they were pointing past the end of the (virtual) disk. That's most of what the
v
command ingdisk
was complaining about.