목차

OS X Tip 모음


ISO 파일로 부팅 USB 만들기

1. iso 파일을 다운로드 받는다. (예 : 우분투 16.04 LTS 설치용 ISO 파일)

2. ISO 파일을 img 파일로 변환시킨다. 터미널창에서 다음과 같이 명령을 내리면 된다.

hdiutil convert -format UDRW -o ubuntu.img ubuntu.iso

3. 이때 ubuntu.img.dmg 로 변환될 수 있다. .dmg 확장자만 지워주면 된다.

mv ubuntu.img.dmg ubuntu.img

4. USB 메모리를 USB 포트에 꽂고, diskutil list 명령을 써 보자.

akpil:~ akpil$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *512.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage OSX                     511.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS WORK                    499.2 GB   disk1s2
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *64.0 GB    disk3
   1:               Windows_NTFS DATA                    64.0 GB    disk3s1

5. /dev/disk2 가 USB 메모리인 것을 확인할 수 있다. 일단 unmount 해준다. 만약 disk3 나 disk4 라면 아래 명령에 있는 disk2 를 disk3, disk4 로 바꾸면 된다.

akpil:~ akpil$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
akpil:~ akpil$

6. 이제 USB 메모리로 이미지 파일을 덮어써주면 된다.

sudo dd if=ubuntu.img of=/dev/disk2 bs=1m

가장 흔하게 보는 에러가 error dd: /dev/disk2: Resource busy 일텐데, unmount 가 안돼서 그런 거니깐 5번을 다시 실행해보자.

7. 에러없이 진행된다면 컴퓨터 성능과 USB 메모리가 SLC, MLC, TLC .. 등의 상태에 따라 다르지만 대략 5~10분 정도 뒤에 프롬프트가 떨어지면 끝난 거다. 이제 USB 메모리를 뽑아서 우분투를 설치하면 된다. 이미지 파일을 USB 로 덮어 쓰는 게 끝나면 삽입한 디스크는 이 컴퓨터에서 읽을 수 없습니다. 라는 팝업윈도가 하나 뜬다. 초기화, 무시, 추출 중에서 추출을 선택하고 뽑으면 된다. 혹시 좀 더 확실하게 하고 싶다면,

diskutil eject /dev/disk2

라고 해주면 된다.


동영상 재상이 안될 때

1. avi 동영상에서 index 가 깨져서 재생이 제대로 안될 때, 터미널에서 다음과 같이 입력하면 된다. 동영상 파일 이름이 input.avi 파일이라면 index 가 수정되어서 output.avi 파일로 저장된다.

 mencoder -idx input.avi -ovc copy -oac copy -o output.avi

2. mencoder 설치 방법은 여러가지가 있는데, Homebrew 가 설치되어 있다면 쉽다.

 brew install mplayer 

3. Homebrew 는 다음과 같이 설치하면 된다. 역시 터미널에서 다음과 같이 입력하면 된다. http://brew.sh/index_ko.html 참조.

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

OS X 업데이트 후 부팅 안될 때

SSD 를 사용하는 경우에, OS X 업데이트 후 SSD Trim 문제로 부팅하다가 부팅이 안되고 멈추어 있는 경우가 있다. 이걸 피하려면 일단 OS X 를 업데이트 할 떄는 Trim 을 off 시키고 업데이트 한 후 며칠 있다가 3rd party Trim tool (Trim Enabler 또는 카멜레온 등) 이 해당 OS X 버전을 지원한다고 나오면 그때 Trim 을 on 시키면 된다.

하지만, 이미 부팅이 안되는 문제가 발생했다면 문제를 해결해야 한다. 어렵진 않다. 조금 귀찮을 뿐 …

경험상 Trim Enabler 를 쓰는 경우에 많이 발생했다. 그래서 구글링을 해보니 https://www.cindori.org/trim-enabler-and-yosemite/ 라는 링크를 발견했고, Step. 4 에 잘 설명돼 있다. 이걸 간략히 정리하면 다음과 같다. OS X 가 설치된 드라이브의 볼륨명이 OSX 라고 하면 다음과 같다. 만일 볼륨명이 OSX 가 아니라 MacMini 라면 MacMini 로 바꿔주면 된다.

  1. 전원버튼을 누르고 Command 와 R 을 같이 누른다. 이때 30초 이상이 걸릴 수도 있다. 화면 색깔이 변하고 복구 모드로 들어갈 때까지 누르고 있으면 된다. 얼마나 누르고 있어야 하는지는 하드웨어 구성에 따라 다르다. 내가 쓰고 있는 맥미니의 경우 30~40초 정도 누르고 있어야 한다. 같이 쓰고 있는 맥북프로는 5초면 복구모드로 넘어간다.
  2. 상단의 메뉴바에서 Terminal 을 선택하여 실행한다.
  3. 다음 명령어 입력
    1. nvram -d boot-args
    2. cd /Volumes/OSX
    3. rm -rf System/Library/Extensions/IOAHCIFamily.kext
    4. cp -r /System/Library/Extensions/IOAHCIFamily.kext System/Library/Extensions/IOAHCIFamily.kext
    5. chown -R root:wheel System/Library/Extensions
    6. chmod -R 755 System/Library/Extensions
    7. touch System/Library/Extensions
    8. kextcache -u /Volumes/OSX
    9. reboot

kextcache -u /Volumes/OSX 를 입력하고 짧게는 1,2 분, 길게는 10분 정도 기다리면 된다.


OS X 10.10.3 에서 Trim 동작하게 하기

2015/04/11 (토) 현재 OS X 10.10.3 에서 동작을 보장하는 3rd Trim tool 이 없다.

구글링을 하던 중 … https://gist.github.com/return1/4058659 라는 링크를 발견했다.

말 그대로 TRIM Enabler for OS X Yosemite 10.10.3

거기 쓰여 있는대로 하면 된다. 다만, 조금 혼동될 수 있으니 설명을 좀 붙인다. 터미널은 iTerm 을 사용해도 좋고 응용프로그램 –> 유틸리티 –> 터미널 을 써도 무방하다.

1. 터미널 창을 하나 열어서 다음 명령어를 순서대로 입력한다.

 sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original
 sudo nvram boot-args="kext-dev-mode=1"
 sudo shutdown -r now

두번쨰 줄을 입력하고 잠시 컴퓨터가 서 있는 것처럼 보일 수 있다. 짧게는 1,2 초, 길게는 10초 이상도 갈 수 있지만, 다운된 건 아니다. 조금 기다리자. 그리고 마지막 명령어는 리부팅하는 명령어다. 역시 작업하던 것이 많이 있을 수 있기 떄문에 미리 작업하던 건 모두 저장하고 모든 프로그램은 미리 미리 꺼두자.

2. 부팅하고 나면

 sudo perl -pi -e 's|\x00\x41\x50\x50\x4c\x45\x20\x53\x53\x44\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
 sudo touch /System/Library/Extensions
 sudo kextcache -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions
 sudo shutdown -r now

세번째 줄을 입력하면 뭔가 화면이 주루르륵 지나간다. 그리고 시간이 좀 걸린다. 30초 이상 걸릴 수도 있다. 그리고 역시 리부팅한다.

이제 Trim 이 동작한다. Trim 동작 여부는, 화면 왼쪽 상단에 있는 사과 마크 –> 이 Mac 에 관하여 –> 화면 중간에 있는 OSX Yosemite 아래쪽에 있는 시스템 리포트 –> 하드웨어 –> STA/SATA Express 에서 해당 SSD 를 보면 여러가지 내용이 쭉 나오는데, 거기에 TRIM 지원: 예 라고 쓰인 게 보인다면 된 거다. 아니오라고 나온다면 … 오타가 있어서 제대로 명령이 안 먹힌 것일 수도 있으니 한두번 더 시도해보고, 그래도 안되면 이 방법으로는 안되는 거니깐 Chamelon SSD Optimizer 나 Trim Enabler 가 OS X 10.10.3 을 제대로 지원할 때까지 기다리면 된다.

* 2015/04/16, Chameleon SSD Optimizer 최신버전이 OS X 10.10.3 을 지원한다고 한다. http://chameleon.alessandroboschini.com/ 하지만, 아직 완벽하지는 않은 것으로 보인다.


.DS_Store 파일 문제

OS X 에서 외장 하드나 USB, 네트웍 드라이브 등을 쓰다 보면 .DS_Store 또는 ._DS_Store 라는 이름의 파일이 생성된다. 유닉스 계열에서는 . 으로 시작하는 파일 이름은 기본 옵션이 안 보이므로 별다른 문제는 없다.

.DS_Store 는 Desktop Service Store 의 약자이고, OS X 에서 지원하는 폴더 아이콘이라든가 기타 특성, 데스크탑에서 보이는 위치 등을 기록한 파일이다.

SMB(CIFS), NFS, AFP 등의 네트워크 연결로 작업할 때 .DS_Store 파일이 네트워크 드라이브에 생성되는 것을 막으려면, 터미널에서

 defaults write com.apple.desktopservices DSDontWriteNetworkStores true

라고 입력하고 로그아웃했다가 로그인하거나, 리부팅하면 된다.

그런데, 완벽하게 생성이 안되는 건 아닌 것 같다. 가끔 생기기도 한다. 그렇다면 저렇게 생긴 파일은 어떻게 할까 ?

유닉스에서는 root 권한으로 다음과 같이 하면 된다.

 find / -name ".DS_Store" -exec rm -f {} \;

그리고 이것을 cron 에 등록시켜서 주기적으로 실행시키면 된다.

 crontab -e 
 05 * * * * root find / -name ".DS_Store" -exec rm -f {} \;

매시 5분마다 (11시 5분, 12시 5분…) root 권한으로 저 명령어를 실행시킨다.

이도 저도 다 귀찮으면 http://asepsis.binaryage.com/ 에서 Asepsis 파일을 다운로드 받아서 설치하면 된다. 다만, OS X 를 업데이트 했다면 다시 한번 실행시켜주면 된다.


2015/02/03 akpil

2015/04/09 1차 수정 akpil

2015/04/11 2차 수정 akpil

2015/04/16 3차 수정 akpil