
내 Raspberry Pi 중 하나는 4GB SD 카드를 루트/부팅 파일 시스템으로 사용합니다.
다른 시스템에 설치하면 다음을 볼 수 있습니다.
Disk /dev/sdc: 3904 MB, 3904897024 bytes
121 heads, 62 sectors/track, 1016 cylinders
Units = cylinders of 7502 * 512 = 3841024 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000714e9
Device Boot Start End Blocks Id System
/dev/sdc1 2 17 57344 c W95 FAT32 (LBA)
/dev/sdc2 17 800 2938880 83 Linux
이는 사용 가능한 4GB 중 3GB만 (의도적으로) 사용하고 있으며 사용 중인 실린더가 시작 부분과 정렬되어 있음을 보여줍니다(플래시가 그런 식으로 작동하는 경우).
cp
과거에 기존 파일 시스템을 더 작은(포맷된) 대상 파일 시스템으로 마이그레이션하기 위해 이 명령을 사용한 적이 있지만 dd
이 명령의 단순성을 더 선호합니다.
Q1: dd
이 디스크를 약간 더 작은(정확히 말하면 44MB 더 작은) 4GB SD 카드에 안전하게 복제할 수 있습니까?
원본 디스크에 나머지 디스크 공간 전체를 채우는 두 번째 파티션이 있지만 부분적으로만 사용되는 파일 시스템이 있는 경우 시간이 지남에 따라 파티션 끝 부분에서도 파일 비트가 흩어질 수 있다고 확신합니다. 물리적 대상 디스크의 경계를 덮어쓸 수 있음)
Q2a: 파티션의 끝이 사용되지 않도록 하기 위해 move-files-to-beginning-kinda-defrag 명령을 실행할 수 있습니까?
Q2b: 파티션의 끝이 사용되지 않는다는 것을 알고 있는 경우 파티션을 dd
더 작은 대상 디스크로 안전하게 잘라낸 다음 간단한 방법으로 잘못된 정렬을 수정할 수 있습니까 fsck
?
답변1
마지막 파티션의 끝이 대상 드라이브에 맞을 것이라고 확신하는 경우 드라이브를 일괄 복사할 수 있습니다.사용하지 마세요dd
, 다른 옵션과 함께 사용하지 않는 한 속도가 느리고 항상 그런 것은 아닙니다. 를 사용하면 오류가 발생하기 쉽습니다 cat
.
cat /dev/sdc >/dev/sdz
/dev/sdz
덮어쓰려는 드라이브의 올바른 경로로 바꾸십시오 . 한 번의 철자 오류로 인해 시스템이 망가질 수 있으므로 올바르게 입력했는지 확인하십시오! 일반적으로 이름에 디스크 모델과 드라이브 연결 방법 표시가 포함된 /dev/disk/by-id/
항목 또는 항목 을 통해 디스크에 액세스 할 수 있습니다. 이렇게 하면 오류 위험이 크게 줄어듭니다./dev/disk/by-path/
fdisk
선택한 다른 도구를 사용하여 새 디스크에 파티션 테이블을 생성하고 대상 파티션이 소스 파티션과 동일한 크기(또는 더 큰지)인지 확인한 다음 각 파티션을 복사하면 오류가 덜 발생합니다. , 예를 들어 (동일한 파티션 번호가 유지되는 경우)
cat /dev/sdc1 >/dev/sdz1
cat /dev/sdc2 >/dev/sdz2
파티션(보다 정확하게는 파일 시스템 - 일반적인 Linux 시스템에는 어떤 마운트 지점이 있습니까?일부 배경지식 제공) 미완성이라고 해서 시작 부분을 복사하고 끝 부분을 생략해도 되는 것은 아닙니다. 파일이 어디에 있을 것인지 예측할 수 없으며 파일 시스템에 제어 데이터가 포함되어 있습니다. 잘린 파일 시스템을 복사하면 파일 시스템이 손상될 것입니다( fsck
고칠 것이라고 기대하지 마십시오. 사용할 수 있는 것을 얻을 수는 있지만 그렇지는 않습니다. 내용이 복사된 부분을 초과하는 복구 가능한 파일은 안됩니다.
파티션을 더 작은 공간으로 복사 또는 이동하거나 단순히 파티션을 축소하려면 먼저 포함된 파일 시스템을 축소하세요. 예를 들어, ext2/ext3/ext4 파일 시스템의 경우 실행하여 resize2fs
파일 시스템을 축소합니다. 파일 시스템 축소는 원하는 "파일을 처음으로 이동하는 조각 모음" 작업입니다. 그런 다음 파티션 축소와 같은 도구를 사용 fdisk
하거나 파일 시스템을 더 작은 파티션에 복사할 수 있습니다. 파티션 크기가 파일 시스템 크기보다 큰지 확인하십시오. GNU Parted는 때때로 파일 시스템과 파티션을 모두 한 번에 축소할 수 있습니다(파일 시스템 및 파티션 유형에 따라 다름).
답변2
이를 사용하여 dd
모든 장치의 복사본이 아닌 파티션의 복사본을 생성할 수 있습니다.
dd if=/dev/sad1 of=/tmp/boot.img
dd if=/dev/sad2 of=/tmp/root.img
에 관해서는2분기:
이 작업을 여러 번 수행했지만 문제가 없었지만 여전히 권장되지 않습니다.