리눅스 fdisk로 작업하던 중에 실수로 s 커맨드를 눌렀더니 이상한(?) 파티션 형식으로 변경이 되었습니다.

fdisk 명령어 중에 s는 다음과 같이 Sun disklabel이라는 형식으로 새로 빈 파티션 테이블을 만든다네요.


   s   create a new empty Sun disklabel


이렇게 Sun disk label이라는 파티션 테이블 형식으로 변경되면 SD카드가 아래와 같이 평소에 보던 형식하고 다르게 표시됩니다.

swap 파티션도 생겼고 Whole disk라는 파티션도 생깁니다. 그냥 쓸려고 해도 왠지 전체 섹터 개수나 블럭 숫자도 다르고 해서 찝찝했었습니다.


Command (m for help): p


Disk /dev/sdb (Sun disk label): 124 heads, 62 sectors, 1018 cylinders

Units = sectors of 1 * 512 bytes


   Device Flag    Start       End    Blocks   Id  System

/dev/sdb1             0   7726440   3863220   83  Linux native

/dev/sdb2  u    7726440   7826384     49972   82  Linux swap

/dev/sdb3             0   7826384   3913192    5  Whole disk


w명령어로 저장까지 해버려서 다시 복구 시키기 위해 이리저리 해보다가 결국 구글링으로 해결했습니다.

http://www.linuxquestions.org/questions/linux-newbie-8/fdisk-remove-sun-disklabel-681546/


fdisk 명령어에서 o를 누르면 예전에 보던 Linux 형식으로 복구가 됩니다.


   o   create a new empty DOS partition table


DOS 파티션 테이블을 새로 생성한다는 것 같아서 이건 아닐꺼라 생각했는데 의외였습니다.
다시 저장하고 디스크 정보를 출력해보면 기존에 디스크 정보로 복구가 되었습니다.

Command (m for help): p


Disk /dev/sdb: 4008 MB, 4008706048 bytes

124 heads, 62 sectors/track, 1018 cylinders, total 7829504 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x6a2ab0b3


DOS 파티션 테이블이라고 해도 파티션 작업을 해보면 Linux 형식으로 사용할 수 있었습니다.
결국 DOS나 리눅스 든지 보통 쓰는 파티션 테이블 형식은 DOS형식으로 볼 수 있는 것 같습니다.

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     7829503     1816576   83  Linux