Today
-
Yesterday
-
Total
-
  • 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카드 전체를 이미지로 떠보면 어떨까 싶어서 이미지 생성 프로그램을 찾아보기로 했다.

     

    디스크 관리에서 본 SD카드의 파티션 정보, 파티션이 12개 있다

    Win32 Disk Imager

     

     

    Win32 Disk Imager

    Download Win32 Disk Imager for free. A Windows tool for writing images to USB sticks or SD/CF cards . This program is designed to write a raw disk image to a removable device or backup a removable device to a raw image file. It is very useful for embedded

    sourceforge.net

     

    현재 라즈베리파이 백업을 위해 많이 사용되는 프로그램 중 하나는 Win32 Disk Imager라는 프로그램이었다. 나도 한 번 사용을 해보았지만, 안타깝게도 디스크 전체를 이미지로 만드는 것은 불가능하고, 파티션 별로만 백업을 할 수 있었다.

     

    SD카드의 파티션만 12개인데, 이걸 언제 하나하나 다 찍고 있을까...라는 생각과 설마 리눅스 구조중 일부분을 백업 못하는 건 아니겠지?라는 생각에 한 파일로 백업을 할 수 있는 프로그램을 찾아보기로 했다. 

     

    [각주:1]">
    Win32 DIsk Imager의 모습[각주:2]

     

    dd for windows

     

    인터넷에서 열심히 정보를 찾다가, stackexchange에서 리눅스의 dd명령어를 윈도우로 포팅한 dd for windows라는 프로그램을 통해 디스크 전체를 이미지 하나로 만들 수 있다는 말이 있었다. (https://superuser.com/a/1371755)

     

     

    chrysocome.net - dd for windows

    dd for windows dd - convert and copy a file This version does not actually do any conversion but it allows the flexible copying of data under in a win32 environment. At the moment block devices under Win9x are not supported but that will be added soon. Rea

    www.chrysocome.net

     

    그 글에 따르면 순서는 다음과 같았다.

     

    1. dd for windows 를 받아서 한 폴더에 풀고 관리자 권한으로 CMD 창을 연다.
    2. 그 뒤에 방금 전 dd를 받았던 위치로 이동한다.
    3. dd --list를 통해 SD카드의 장치 번호를 가져온다. (참고로 여기서 파티션 0번이 디스크 전체를 의미한다.)
    4. 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 밖에 되지 않았다. 이걸로 디스크 이미지를 어떻게 만들 수 있다는 걸까?라는 생각이 들었지만, 한번 사용해 보기로 했다.

     

     

    Roadkil.Net - Roadkil's Disk Image Program Download

    Roadkil's Disk ImageLatest Version1.6This Version Downloads344,636All Versions Downloads564,237File Size374,160 bytesFile Date15 January 2010File NameDiskImage_1_6_WinAll_Setup.exeLanguages SupportedEnglishDownload Time66.8 s @ 56Kb/s7.2 s @ 512Kb/sChoose

    www.roadkil.net

     

    Roadkil's DiskImage 프로그램 화면

     

    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]

     

    다시 복구를 시도했더니 내 생각이 정말 어느 정도 맞았는지, 복원이 성공적으로 끝났다. 정말 다행이다.

     

    Putty 화면, 그런데 왜 마지막 로그인 날짜가 2021년일까...

     

    여담

     

    혹시나 Etcher로 복원을 한다면 이미지 쓰기 시 에러 없이 끝나지 않을까 기대했는데, 그냥 복원이 이상하게 됐다. 파티션이 여러 개 만들어지는 것이 아니라, 파티션이 하나만 만들어지고 끝났다. 당연히 부팅도 불가능했다

     

    Ethcher로 복원을 시도했지만, 플래시가 끝난 후에 부팅이 불가능했다.

     

     

    1. 출처: Win32 Disk Imager Sourceforge [본문으로]
    2. 출처: Win32 Disk Imager Sourceforge [본문으로]
    3. 다행히 만약에 복원에 실패해도 .img파일을 열어서 필요한 파일을 가져갈 수는 있었기에 최악의 사태는 막을 수 있었다. [본문으로]

    댓글

어제는 이곳에 명이 다녀갔습니다.

Powered & Designed by Tistory