편집: 어떤 이유로 내 게시물의 일부만 저장되었습니다. 이제 전체 내용으로 업데이트했습니다.
이 주제는 Raspberry Pi에 관한 것이지만 기본적으로 다음 설정을 갖춘 모든 SD 카드에 적용할 수 있습니다. 파일 시스템은 카드 전체 크기의 일부만 차지합니다. 간단히 말해서 이 질문의 요점은 글쓰기 방법을 파악하는 것입니다.오직FS(또는 여러 파티션이 있는 경우 그 이상)를 백업 이미지에 추가합니다. 자세한 내용은 아래에서 확인하실 수 있습니다.
작년 12월에 Pi를 구입한 후 Pi를 가지고 놀기 시작했을 때 SD 카드가 몇 번 손상되어 내용이 손실되었습니다. 정상적인 종료를 수행하는 대신 부적절하게 전원을 꺼서 발생했기 때문에 여기서는 큰 문제가 아닙니다. 매번 카드를 포맷하고, Raspbian 이미지를 쓰고, Pi에 넣고, 보드를 부팅하고, 파일 시스템을 확장하고, 더 나은 솔루션을 찾기 위해 시작한 모든 것을 다시 설치하고 재구성해야 했습니다.
- 이미지와 FS 크기 조정~ 전에SD 카드에 쓰기-이것링크는 이미지를 늘리고( 입력 소스로 사용) 조정하는
dd
방법 을 완벽하게 보여줍니다 (Raspbian의 경우 EXT4인 것 같습니다(부팅 구성 요소의 FAT32 작은 파티션 제외)). 이를 사용하면 문제가 해결됩니다./dev/zero
ext4
파일 시스템 확장기본적으로 2GB, 4GB, 16GB, 32GB 등 포맷되지 않은 나머지 공간을 차지하는 Raspberry 구성 도구의 기능입니다. 물론 이미지를 늘리면dd
SD 카드에 쓰는 데 필요한 시간도 늘어나지만 다음 단계의 사용자 정의도 가능합니다. - 설치된 소프트웨어 사용자 정의 -
chroot
또는proot
(+qemu
)를 사용하여 가능합니다 (표시된 바와 같이)여기그리고여기) Raspbian의 FS를 올바르게 마운트하면 원하는 것을 설치/빌드할 수 있습니다chroot
. 이는 크로스 컴파일이 필요한 많은 빌드(예: Pi용 Qt)의 필수 단계이기도 합니다. Pi에서 기본적으로 컴파일할 수 있지만 많은 공간과 시간이 걸립니다.
이것이 기본적으로 제가 이미지를 맞춤화하기 위해 작업해 왔던 방식입니다. 여기서 문제는 역 작업과 관련된 일련의 절차, 즉 SD 카드의 콘텐츠를 최적의 방식으로 PC에 저장하는 것입니다. 압축은 물론 수행할 수 있는 중요한 작업 중 하나이지만 그것만으로는 충분하지 않습니다. 사용 시 dd
전체 SD 카드(빈 블록 포함)를 컴퓨터에 쓰거나 원하는 섹터 크기와 수를 선택할 수 있습니다. 두 번째 방법은 더 나은 스토리지 활용을 제공하지만 신중하게 계산해야 합니다. 짧게 자르면 FS가 손상될 수 있습니다(아, 이걸 여러 번 본 적이 없나요...).
나는 다음과 매우 유사한 솔루션을 찾고 있습니다.클론질라제안 - 복제할 수 있습니다실제로 콘텐츠가 있는 블록만나머지는 이렇게 버려라FS 축소훨씬 더 작은 공간에 완전한 기능을 갖춘 FS를 저장할 수 있습니다. 나는 작년에 이웃이 부러진 HDD의 데이터를 MacBook에 저장하는 것을 도왔을 때 그렇게 했습니다.
예: Raspbian Jessie Lite가 설치되어 있는 경우 약 50분 정도 소요됩니다. SD 카드에는 1.3GB가 사용됩니다. 이제 카드가 32GB라고 상상해보세요. 물론, 시간이 지나면 나머지 공간을 포맷하고 사용하고 싶을 수도 있지만 일반적으로 (적어도 나에게는) 그렇지 않습니다. 따라서 맹목적으로 사용하면 dd
기본적으로 32GB 이미지 파일이 생성됩니다. 압축은 대부분의 기가바이트를 처리하지만 나중에 Raspbian의 이전 상태를 복원하기 위해 SD 카드에 다시 쓰는 것은 매우 긴 프로세스입니다. FS를 복사할 수도 있습니다(다시 사용 dd
). 하지만 해당 파티션에서 실제 설치(모든 파일)가 600MB 정도만 소요된다면 어떻게 될까요? 600MB만 필요한데 왜 1.3GB를 복사하려고 합니까? 그리고 구성 도구의 "파일 시스템 확장" 기능이 사용된 Raspbian이 포함된 SD 카드가 있고 n
실제로 %가 사용되고 있음에도 불구하고 전체 SD 카드가 포맷되면 어떻게 되나요?
가능한 한 적은 노력과 노력으로 이를 달성하는 방법에 대한 아이디어가 있습니까?
답변1
dd
(전혀 필요한) 작은 FAT 파티션을 덤프/복원 e2image -a
하지만e2fsprogs패키지)를 주 파티션으로 사용합니다. 플래시로 복원하는 경우 이 -c
옵션이 유용해 보입니다(대상에서 실제로 다른 부분만 덮어씁니다).
답변2
글쎄, 귀하의 질문에 직접적으로 대답하지는 않지만, 쉬운 복원을 위해 제가 한 일은 다음과 같습니다.
- 모든 필수 패키지가 설치된 후 SD 카드 내용을 파일에 추가합니다.
- 최대 압축으로 파일을 bzip하고 gzip으로 압축된 데이터 파일을 백업으로 유지합니다.
- 손상된 경우 dd를 사용하여 bunzip 후 백업 파일을 복원하십시오.