-
Jetson Nano SD카드 이미지 백업 하기Soliloquy 2019. 11. 13. 15:20
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
내가 겪은 ALSA lib 에러 일부
Jetson nano에서 Precise라는 프로그램을 사용하다가 ALSA lib에서 Warning 메시지가 엄청 많이 나왔다. 인터넷을 검색해 보아도 답이 보이지 않자, 혹시 내가 과거에 사운드 관련 파일을 아무것도 모른 채로 수정을 했어서 그런가 싶어 OS를 다시 설치해 보기로 했다.
하필이면 SD카드가 현재 하나 밖에 없어서 설치 전에 그동안 해왔던 파일들을 백업해야 하는데, 단순히 파일만 복사하는 정도로는 백업이 불가능한 부분이 많았다. 차라리 SD카드 전체를 이미지로 떠보면 어떨까 싶어서 이미지 생성 프로그램을 찾아보기로 했다.
Win32 Disk Imager
현재 라즈베리파이 백업을 위해 많이 사용되는 프로그램 중 하나는 Win32 Disk Imager라는 프로그램이었다. 나도 한 번 사용을 해보았지만, 안타깝게도 디스크 전체를 이미지로 만드는 것은 불가능하고, 파티션 별로만 백업을 할 수 있었다.
SD카드의 파티션만 12개인데, 이걸 언제 하나하나 다 찍고 있을까...라는 생각과 설마 리눅스 구조중 일부분을 백업 못하는 건 아니겠지?라는 생각에 한 파일로 백업을 할 수 있는 프로그램을 찾아보기로 했다.
dd for windows
인터넷에서 열심히 정보를 찾다가, stackexchange에서 리눅스의 dd명령어를 윈도우로 포팅한 dd for windows라는 프로그램을 통해 디스크 전체를 이미지 하나로 만들 수 있다는 말이 있었다. (https://superuser.com/a/1371755)
그 글에 따르면 순서는 다음과 같았다.
- dd for windows 를 받아서 한 폴더에 풀고 관리자 권한으로 CMD 창을 연다.
- 그 뒤에 방금 전 dd를 받았던 위치로 이동한다.
- dd --list를 통해 SD카드의 장치 번호를 가져온다. (참고로 여기서 파티션 0번이 디스크 전체를 의미한다.)
- if=\\?\Device\{장치번호}\Partition0 of=my.img bs=1M --progress 를 통해 SD카드 데이터 전체를 img파일로 생성한다.
나의 경우에는 아래와 같이 사용하면 img 파일을 생성할 수 있었다.
...
size is 16777216 bytes
\\?\Device\Harddisk0\Partition4
link to \\?\Device\HarddiskVolume4
\\?\Device\Harddisk1\Partition0
link to \\?\Device\Harddisk1\DR10
Removable media other than floppy. Block size = 512
size is 32010928128 bytes
\\?\Device\Harddisk1\Partition1
link to \\?\Device\HarddiskVolume143
Removable media other than floppy. Block size = 512
size is 31998328320 bytes
...dd --list의 화면
나의 경우에는 SD카드가 Harddisk1이었다
dd if=\\?\Device\Harddisk1\Partition0 of=myimage.img bs=1M --progress
CMD에 입력한 명령어
그런데 나름 잘 되나 싶더니, 100%가 될 때 아래와 같은 오류 CRC 메세지가 나왔다. 혹시나 하는 생각으로 다시 한번 이미지 파일을 만들어 봤는데, 여전히 에러가 발생했다.
C:\Users\Backup>dd if=\\?\Device\Harddisk1\Partition0 of=myimage.img bs=1M --progress
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin
This program is covered by terms of the GPL Version 2.30,528M Error reading file: 23 Data error (cyclic redundancy check)
30528+0 records in
30528+0 records out내가 겪은 CRC오류 메시지
CRC 메시지로 인해 처음에는 뭔가 정상적으로 작동을 하더라도, 나중에 오류가 생길 것 같아서 다른 프로그램을 찾아보기로 했다.
Roadkil's DiskImage
인터넷을 좀 더 돌아다니가 Roadkil's DiskImage라는 프로그램을 알게 되었다. dd와는 달리 GUI를 지원하는 프로그램이었는데, 프로그램 용량이 고작 65KB 밖에 되지 않았다. 이걸로 디스크 이미지를 어떻게 만들 수 있다는 걸까?라는 생각이 들었지만, 한번 사용해 보기로 했다.
Read Image에서 Physical Disk1을 선택하고 Start버튼으로 이미지 생성을 시작했다. 걱정했던 것과는 달리 이미지 파일이 잘 만들어졌다. 이제 OS를 다시 설치하고 난 뒤에 내가 하려던 시험을 한 번 해보고 이미지 복원만 어떻게 잘하면 될 것 같았다.
Roadkil's DiskImage를 이용한 이미지 복원
이미지 복원도 동일한 프로그램으로 할 수 있었다. 이번에는 Write Image탭에서 진행을 했는데, 복원을 진행하다 보니, 갑자기 SD카드 파티션을 보여주는 탐색기 창이 열리더니 포맷이 필요하다는 메시지가 나오면서 에러 메시지와 함께 복원에 실패하는 일이 생겼다.
Disk Error
❌ Error #2 occured while writting to disk at sector 4233856
내가 겪은 오류
정녕 복구가 불가능한 것인가 하고 생각하던 와중에 혹시나 윈도우가 파티션을 읽으면서 생기는 오류가 아닐까? 하고 생각을 해서 다시 한번 이미지로부터 복원을 시도했다. 3
다시 복구를 시도했더니 내 생각이 정말 어느 정도 맞았는지, 복원이 성공적으로 끝났다. 정말 다행이다.
여담
혹시나 Etcher로 복원을 한다면 이미지 쓰기 시 에러 없이 끝나지 않을까 기대했는데, 그냥 복원이 이상하게 됐다. 파티션이 여러 개 만들어지는 것이 아니라, 파티션이 하나만 만들어지고 끝났다. 당연히 부팅도 불가능했다