2015/03/13

우연과 과학


우연

무념무상이었는데 뜬금없이 빌 브라이슨의 "거의 모든 것의 역사"에서 태양계 모든 행성 들의 궤도를 책 한 페이지에 그림으로 표현하기 어렵다는 대목이 떠올랐다. 행성간 거리가 엄청나게 멀리 떨어져 있기 때문에 당연한 것이다.

그런데, 뜬금없다는 것은 공돌이의 직감으로 행성 들의 거리 간에 일정한 관계가 있을지도 모른다는 생각이 들었기 때문이다. 태양으로부터 각 행성까지의 거리를 log 함수로 표현하면 직선이 되지 않을까하는 생각이 들었다.

Wikipedia를 뒤져서 수성에서 해왕성까지 행성들의 거리를 찾아서 LibreOffice Calc에 기록하고 line chart로 ln(거리)를 그려 보았다. 앗, 정말 거의 직선이다. 그런데, 수성 ~ 화성, 목성 ~ 해왕성, 두 개의 기울기가 다른 직선이 그려졌다. 가만히 생각해 보니 화성과 목성 사이에 소행성대(asteroid belt)가 있지 않은가? 그걸 집어 넣으면 수성 ~ 해왕성까지 거의 하나의 직선이 될 수 있었다. Linear regression까지는 귀찮아서 눈 대중으로 chart에서 소행성대 거리의 ln 값을 대충 넣어서 거리를 역산한 후 소행성까지의 거리를 대략 구해 보았다. 또, 직선을 연장해서 명왕성(Kuiper belt)까지의 거리도 대충 계산하였다. 혹시 발견되지 않은 Nibiru 행성 X가 있다면 그 위치도 대략 알 수 있을 것이다. 아래 화면에서 녹색 부분은 눈대중으로 계산한  거리이다.


이제 위에서 얻은 거리 값들을 Wikipedia에서 찾은 값들과 비교해 보기로 하였다. 소행성대와 명왕성까지의 거리가 대충 잘 들어 맞는다. 소행성대는 2.2~3.3AU(1AU는 지구와 태양간 거리)이고 명왕성은 50AU 정도란다.

티티우스-보데의 법칙

헐~! Wikipidia에서 소행성대 거리를 찾아 보다가 위의 발견이 티티우스-보데의 법칙을 재발견한 것이라는 것을 알았다. 소행성대의 세레스도 조물주가 우주를 건축했다면 화성과 목성 사이에 무엇인가가 있어야 한다는 티티우스-보데의 법칙으로부터 발견한 것이었다는...!!!

이제 100AU 근처에서 Nibiru가 발견되길~!!!

과학이라는 것

사실 호기심과 끈기만 있으면 누구나 과학자가 될 수 있다. 다만, 옛날과는 달리 새롭게 발견할 꺼리가 많이 줄어 든 것도 사실이다. 그래도 인간은 모르는게 많기 때문에 새로운 세대들이 실망할 필요는 없을 것이다.

내가 천문학자였다면 왜 행성들이 저렇게 질서 정연한 거리를 두고 태양계에 배치될 수 밖에 없는지에 대해 파고들었겠으나 지금은 언젠가 뜬끔없이 영감이 떠오르기를 바랄 뿐이다.

2015/03/01

Ubuntu 14.10 fdisk와 gdisk


Ubuntu 14.10의 fdisk에서 GPT 파티션 지원 시작

우분투 14.10부터 fdisk에서 GPT 파티션도 지원하기 시작했다는 것을 우연히 발견했다. 당연히 fdisk는 DOS(MBR) 파티션에 사용하고 GPT 파티션 작업에는 gdisk(GPT fdisk라고도 함)를 사용해 왔기 때문이다. 아래에 새로운 fdisk와 gdisk 메뉴 스크린 샷을 첨부한다.


gdisk가 fdisk로 완전히 통합될지는 모르겠지만 아직은 gdisk에 너무 익숙해서 fdisk를 쓰고 싶은 마음이 생기지는 않는다. 여기서는 gdisk의 몇가지 팁들을 남겨두고자 한다.

gdisk를 이용한 파티션 테이블 정보 관리

아래 화면과 같이 GPT 파티션 Table 정보와 Protected MBR 파티션 정보를 gdisk로 관리할 수 있다. Multi-OS 환경에서 이 정보들은 잘 Backup 해둘 필요가 있다. Linux는 Gparted/parted, Windows는 Disk Manager/diskpart, Mac OS X는 Disk Utility와 같이 OS 별로 저마다의 Disk 관리 Tool 들이 있는데, 이 들이 디스크 파티션 변경시 저마다의 방법으로 파티션 Table 정보를 변경해 버리기 때문이다.


가령, Mac OS X의 Disk Utility로 Disk의 마지막 파티션을 미할당 상태로 남겨 두고 리눅스에서 Gparted로 fat32 파티션을 새로 할당하면 Protected MBR 파티션 정보가 Hybrid-MBR 파티션 정보로 바뀐다. 이 상태에서 Windows로 부팅하면 자동 복구 모드로 넘어 가는데 복구하면 파티션이 완전히 망가지는 경험을 하게된다. 한가지 경험담을 더 예로 들면, Windows에서 fat32 파티션을 지웠다가 다시 생성했더니 Mac OS X로 부팅할 수 없는 문제가 발생했다. 이런 일이 어느 날 갑자기 생기면 Mac OS X의 문제라고 생각하고 OS 재설치를 시도하게 된다. 그러나 재설치를 해도 재부팅 후 Mac OS X로 부팅할 수 없게 된다. Mac OS X의 Disk Utility로 verify 해 보면 파티션 오류가 발생하고 복구할 수는 없다. 나중에 알고보니 Mac OS X 파티션 Type 정보가 "Apple HFS/HFS+"였는데 "Microsoft basic data" Type으로 바뀌어서 발생한 문제였다.

gdisk는 파티션 테이블 원본을 Binary 파일로 Backup했다가 문제가 생겼을 때 복구하거나, 아니면 파티션 정보를 텍스트 파일로 저장했다가 나중에 수작업으로 파티션 정보를 일일이 복구할 수 있도록 해준다. 위의 경험담은 어쩌면 지극히 일부의 문제 사례일 것으로 추정된다. 즉, Multi-OS 환경에서 특정 OS의 디스크 관리 툴을 가지고 파티션 추가/삭제/변경 작업시 파티션 테이블의 어떤 정보가 동시에 변경될지 예측하기 어렵다. 특정 OS로 갑자기 부팅이 안되는 문제가 발생하면 gdisk로 파티션 테이블 변경 사항이 있는지를 가장 먼저 확인하는 것이 좋다. 파티션 테이블만 복구하면 대부분의 문제가 해결된다.

gdisk 활용 팁

파티션 Type이 변경된 경우, gdisk의 l(list known partition types) 명령으로 파티션 Type code를 알아낸 후 t(change a partition's type code) 명령으로 해당 파티션의 code를 변경해 주면 된다.

리눅스 GPT 파티션들은 Gparted로 파티션을 새로 만들면 파티션 Type code가 0700(Basic data partition)이 된다. 이 파티션은 Windows로 부팅시 탐색기에서 새로운 드라이브로 보이는데 마우스로 클릭하면 포맷할지 물어본다. 이 자체가 사용자의 실수를 유발할 수 있기 때문에 Windows에서 리눅스 파티션이 아예 보이지 않도록 해 줄 필요가 있다. gdisk에서 Type code를 8300(Linux filesystem)으로 바꿔주면 Windows 탐색기에 더이상 리눅스 파티션이 보이지 않게 된다.

순수 UEFI-GPT Multi-OS 환경에서는 Protected MBR 파티션은 디스크 전체가 하나의 파티션으로 잡혀야 하는데 Hybrid-MBR 파티션 정보로 바뀌면 여러 개의 파티션이 나타나게 된다. 이 때는 gdisk의 x(Expert command), n(create new protective MBR) 명령으로 새로 파티션을 생성해 주면 문제가 해결된다.

참고 사항

Hybrid-MBR 파티션은 Mac OS X의 Boot Camp를 사용해서 Windows를 설치할 때 BIOS 모드를 emulation 해 주기 위해서 사용하는 파티션 방식이다. 즉, Mac OS X 자체는 GPT 파티션을 사용하는데 Windows의 DOS(MBR) 파티션을 지원하기 위해서 짬뽕 파티션을 사용하는 것이다. 그런데, 리눅스의 Gparted도 이 방식을 지원하듯하다. 문제는 이것을 모르고 사용하면 Multi-OS 환경에서 파티션 정보가 엉켜서 특정 OS로 부팅이 안되는 사태가 발생한다는 것이다.