*** 주의!!! : linux, macos에서 사용이 가능하며 windows는 해당 os에 맞게 바꾸어 사용하셔야 합니다.
안녕하세요.
얼마전 sx os 구입후 emunand를 hidden partition에 설치해서 사용중입니다. (정펌 7.0.1, 에뮤6.2.0)
emunand를 파일로 쓰시는 분은 백업과 복원에 큰 문제가 없겠지만 hidden partition으로 쓰시는 분은 이걸 어떻게 백업/복원 해야하는지 막막하셨을텐데 저도 어제 결국(?) 백업/복원에 성공을 해서 관련 팁을 공유드립니다~
전 DD (diskdump)라는 걸 이용했고 비슷한 기능의 다른 프로그램을 이용하셔도 무방합니다.
들어가기 전에 emunand에 대해 몇가지 알고 가셔야할 내용이 있습니다. 1. emunand는 sysnand를 그대로 dump 떠서 만들어진다. -> 즉 용량이 31,276,925,952 byte (약 29기가) 2. hidden partition과 함께 만들어지는 일반 파티션은 partition offset이 31276925952 이어야 한다. 3. hidden partition은 first 1024 + boot 0 + boot 1 + rawnand 로 구성되며 각 용량은 1k, 4096k, 4096k, 30,535,680k 이다. 4. first 1024 영역에 team xecuter signature가 저장되어 있다. (없으면 emunand로 인식 안됨)
백업이 정상적으로 되었다면 이루어졌다면 같은 용량 혹은 다른 용량(최소 32기가보다 큰 사이즈)으로 복원이 가능합니다. 또한 emunand 파일을 hidden partition로 복원도 가능합니다.
우선 참고하실 URL을 먼저 공유드리면 https://gbatemp.net/threads/moving-from-sx-os-sd-emunand-to-sd-hidden_emunand.526587/ 입니다.
1. 백업 *** 주의!!! : 아래 #부분은 반드시 sd memory에 해당하는 드라이브 번호를 사용해야 합니다. sudo dd bs=512 if=/dev/disk# of=./first1024.bin count=2 sudo dd bs=512 if=/dev/disk# of=./boot0.bin skip=2 count=8192 sudo dd bs=512 if=/dev/disk# of=./boot1.bin skip=8194 count=8192 sudo dd bs=512 if=/dev/disk# of=./rawnand.bin skip=16386 count=61071360
2. 복원 복원은 백업과 다르게 절차가 필요합니다. 데이터 파티션 (TXNAND) 전체 용량으로 생성 -> partition offset 설정 -> 데이터 파티션 포맷 -> 복원할 emunand 파일 생성 -> dd 복원
같은 크기의 메모리(동일 CHS)에 복원할 경우는 백업한 first1024.bin을 그대로 사용가능하지만 다른 크기의 메모리로 옮기는 경우는 partition offset을 설정한 후 해당 메모리의 new_first1024 을 백업 받고 백업 받은 new_first1024에 team xecuter signature를 넣고 저장하신후 복원할 emunand 파일을 생성하시면 됩니다. (참조: https://gbatemp.net/attachments/first1024-explaination-png.155080/)
partition offset 설정은 fdisk 로 가능합니다. 예) fdisk -e /dev/disk# => edit # => start(offset) 61087746(bs 512일 경우) 설정
복원할 emunand 파일은 - 같은 크기(같은 CHS) 메모리일 경우 cat first1024.bin boot0.bin boot1.bin rawnand.bin > ./emunand.bin - 다른 크기 메모리일 경우 cat new_first1024.bin boot0.bin boot1.bin rawnand.bin > ./emunand.bin - emunand 파일로 부터 복구할 경우 cat new_first1024.bin boot0.bin boot1.bin full.00.bin full.01.bin ... full.07.bin > ./emunand.bin
dd 복원 *** 주의!!! : 아래 #부분은 반드시 sd memory에 해당하는 드라이브 번호를 사용해야 합니다. sudo dd if=./emunand.bin of=/dev/disk# bs=2M conv=notrunc status=progress
status=progress 지원하지 않을 경우 pv를 사용 sudo dd if=./emunand.bin | pv -s 29G | sudo dd of=/dev/disk# bs=2M conv=notrunc
위와 같이 진행을 하시면 복원이 됩니다.
백업이나 복원을 하실때, 특히 복원할 때 usb 3.0임에도 쓰기 속도가 초당 2~3메가 정도만 나와 시간이 오래 걸렸습니다. 혹시나 하고 리눅스를 이용해서 쓰기를 시도하니 초당 60메가정도 나와 훨씬 시간을 줄일 수 있었습니다. 메모리 읽기 쓰기 속도가 안나오시면 다른 os로도 시도를 해보세요~
참고하세요~
|