maczoo.com 게시판 인덱스 maczoo.com
매킨토시 사용자 커뮤니티
 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   쪽지를 확인하려면 로그인하십시오쪽지를 확인하려면 로그인하십시오   로그인로그인 

[OSX] swap 과 home 디렉토리를 다른 파티션으로 옮기기

 
글 쓰기   답변 달기    maczoo.com 게시판 인덱스 -> Tips & 사용기
이전 글 :: 다음 글  
글쓴이 메시지
atasa
heavy mania
heavy mania


가입: 2002년 9월 9일
올린 글: 87

올리기Posted: 금 1월 28, 2005 1:24 pm    주제: [OSX] swap 과 home 디렉토리를 다른 파티션으로 옮기기

출처 :
http://www.bombich.com/mactips/homedir.html
http://www.bombich.com/mactips/swap.html
http://www.bombich.com/software/ccc.html

(번역을 못해드려 죄송합니다.)
----------------------------------------------------

그간 메인으로 OS 9 를 써오다가 X 로 바꿨습니다.

사전에 백업과 각종 유틸을 살펴보니 유용한 몇가지가 눈에 띄는 군요.

우선 시스템을 다시 깔아야 할때 시스템만 깔고 잘 쓰던 각종 응용프로그램은 그대로 쓰는 것이 가능하군요.

이제 맥은 유닉스 시스템이기 때문에 유닉스에서 되는는것은 맥에서 그대로 다 됩니다. ^^ 그 막강한 emacs 에서부터 Perl, vi, sed, awk...

리눅스나 솔라리스 등의 유닉스를 깔아 써보면, 맥유저들에게는 복잡하게 보일만큼 파티션을 여러개로 나누어 까는것이 원칙이고 모두가 그렇게 하고 있습니다.

OS X 가 유닉스인 이상 적어도 swap 과 home 만큼은 분리를 해주는것이 여러가지로 유리한것 같습니다.

(유닉스에서는 usr 디렉토리는 최소한의 부팅에 필요한 파일들을 제외한 다음단계의 명령어들이 자리하는데 일반적으로 우리가 쓰는 명령어들이 여기 있는 것들입니다. usr 란 단어를 쓰게 된것은 초창기에 개발자들이 컴파일한 명령어들을 넣어두는곳이라는 뜻이었지만 지금은 결과적으로 어색한 단어가 되고 말았습니다. 그렇다고 이제와서 그걸 바꾼다는것도 혼란을 초래하기 때문에 그냥 쓰고 있다고 합니다. )

(그런데 OS X 에서는 사용자들의 개인파일이나 작업파일을 모아두는 곳인 home 디렉토리를 Users 라고하는 폴더 안에 두고 있군요. 저도 잠시 혼동 했는데, usr 는 운영체제 명령어들이 들어있는 곳인데 OS X 에도 살펴보니 root 에 있군요. root 권한으로 터미날로 보면보입니다. ^^)

### OS X 를 다른 하드나 파티션으로 옮기기 #########
기존의 단일 파티션에 깔린 OS X를 파티션을 나눈 하드로 옮기는 방법입니다.

1) root : 5 기가
2) swap : 1 기가
3) home : 10 기가
4) 나머지는 필요에 따라 나누시고요,

** 파티션 나눌때 디스크 유틸리티가 버그인지 파티션의 위치를 제멋대로 지정하더군요. 그래서 iPartition 이라는 유틸을 구해서 나눈다음 (이놈도 버그인지 마운트가 잘 안되요.) 다시 디스크 유틸리티 로 확인 시켜 주었더니 해결 되는군요.

차라리 리눅스나 솔라리스처럼 처음부터 지정할 수 있게 했으면 될것을 편리하게 만든다고 하다가 불편을 남기는군요. 아직 구석구석 손볼데가 좀 있어 보입니다.

셀 스크립트를 만들어 한꺼번에 실행해도 되지만 터미날을 열어놓고 한줄씩 끌어다 실행해보면 자세히 이해할 수 있고 이와 유사한 다양한 작업에 도움될 겁니다.

#--------------------------------------------------------------
1) 우선 super user 권한을 가지세요.

sudo -s

라고 친후 패스워드를 물으면 입력하면 됩니다.

#--------------------------------------------------------------
2) 일단 변수를 지정해주는것이 좋습니다.
vol_root=root
vol_home=home

usr_id=atasa # 각자 자신의 아이디 입니다.


#--------------------------------------------------------------
3) 시스템 폴더들을 복사합니다. (눈에 보이는것들)
ditto -rsrcFork /Library /Volumes/$vol_root/Library
ditto -rsrcFork /System /Volumes/$vol_root/System
ditto -rsrcFork /Applications /Volumes/$vol_root/Applications
ditto -rsrcFork /Users /Volumes/$vol_root/Users

#--------------------------------------------------------------
4) 시스템 폴더들을 복사합니다. (눈에 안 보이는것들)
ditto -rsrcFork /cores /Volumes/$vol_root/cores
ditto -rsrcFork /private /Volumes/$vol_root/private
ditto -rsrcFork /usr /Volumes/$vol_root/usr
ditto -rsrcFork /bin /Volumes/$vol_root/bin
ditto -rsrcFork /sbin /Volumes/$vol_root/sbin
ditto -rsrcFork /mach_kernel /Volumes/$vol_root/mach_kernel
ditto -rsrcFork /.hidden /Volumes/$vol_root/.hidden


#--------------------------------------------------------------
5) 링크를 미리 만들어 줍니다.
(참고 : etc나 var.. 같은 디렉토리들은 유닉스에서는 최상위 루트에 있는 것들인데 맥에서는 private 폴더 안으로 옮긴다음 루트에 링크만 걸어 놓고 있습니다. 사용자에게 감추기 위해서 그랬겠지만 그냥 유닉스 그대로 두는것이 오히려 편할것 같기도 합니다. 하지만 다시 끌어내어 원위치 시켜도 되겠습니다만..^^
cd /Volumes/$vol_root

ln -s private/etc etc
ln -s private/var var
ln -s private/tmp tmp

mkdir dev Volumes Network

(또 참고: 유닉스에서는 파일과 디바이스 장치들이 모두 최상위 root 즉, '/' 아래에 속하도록 되어 있습니다.
볼륨이 여러개라 하더라도 유닉스에서는 /mnt 에 마운트 시켜서 접근하는데 X 에서는 'Volumes' 라고 이름만 바뀌었을 뿐 기능은 똑같습니다.
윈도우 진영에서도 Cygwin 이라는 리눅스 가 있는데 여기에서는 cygdrive/c, cygdrive/d... 이런 식으로 볼륨을 마운트하고 접근합니다.


#--------------------------------------------------------------
6) 시스템 활성화 시키기

bless -folder /Volumes/$vol_root/System/Library/CoreServices \
-bootinfo /usr/standalone/ppc/bootx.bootinfo

bless -folder9 /Volumes/$vol_root/System\ Folder -bootBlocks

(Dos 에서 sys.com 과 유사한 기능을 하는 모양인데 저도 자세히는 모르겠습니다. 그냥 실행하니까 잘 되내요.^^)


자! 여기까지 하고 시동 디스크 지정한다음 재시동하면 신기하게도 원본과 같이 부팅이 정상적으로 됩니다.




그럼 이번에는 스왑파티션 지정하기 입니다.

#--------------------------------------------------------------
1) 다시 super user 권한을 가지세요.
sudo -s


#--------------------------------------------------------------
2) 스왑 파티션의 장치명을 구합니다.

df -k

라고 치면 아래와같이 나오는데,

Filesystem 1K-blocks Used Avail Capacity Mounted on

/dev/disk0s6 9769040 4642756 5126284 47% /
devfs 28 28 0 100% /dev
fdesc 1 1 0 100% /dev
<volfs> 512 512 0 100% /.vol
/dev/disk0s12 917392 22576 894816 2% /Volumes/swap <- 이 부분을 확인하시고,

'/dev/disk0s12' 이 장치명입니다. 이것이 마운트되어 /Volumes/swap 의 역할을 한다는 뜻이지요.


#--------------------------------------------------------------
3) file system table 파일을 수정합니다.

vi /etc/fstab

아래 내용을 추가 합니다.

/dev/disk0s12 /Volumes/swap ufs rw 1 2

:wq! 를 눌러 저장하고 닫으세요.

#--------------------------------------------------------------
3) /etc/rc 파일을 수정합니다.

vi /etc/rc

/swapdir 라고 치고 엔터하면 다음 내용을 찾아 보여주는데 ,

Start the virtual memory system.
##

ConsoleMessage "Starting virtual memory"

#swapdir=/private/var/vm <- 이줄 앞에 #을 붙여 주석으로 만들고
swapdir=/Volumes/swap/vm <- 이 줄을 추가 하세요.

# Make sure the swapfile exists
if [ ! -d ${swapdir} ]; then
ConsoleMessage "Creating default swap directory"
mount -uw /
mkdir -p -m 755 ${swapdir}
chown root:wheel ${swapdir}
else
rm -rf ${swapdir}/swap*
fi

그리고 저장하고 닫으세요. 재부팅 하시면 됩니다.


(아직 vi 못쓰는 분 많으시죠? 힘들더라도 배우는게 좋습니다. 유닉스 툴은 grep, ed, ex, vi, sed, awk, perl 로 이어지는데 이들의 핵심은 정규식입니다.
저도 vi 안배우고 어떻게 해보려다가 끝내는 한바탕 해부치고 나서야 유닉스가 편해지더군요. 당분간 유닉스를 채택한 스티브잡스가 밉겠지만 한번 익히고 나면 정말 평생 써먹거든요.^^
예를 들어 mp3 파일 다운받았는데 트랙 넘버가 곡명 뒤에 붙어 있어서 파인더에서 순서가 뒤죽박죽되어 있는 경우가 있죠? 그럴때 정규식으로 짧게 한줄만 처주면 번호가 감쪽같이 앞으로 나와서 순서대로 보이게 할 수 있습니다.





그럼 이번에는 홈 디렉토리 옮기기 입니다.

#--------------------------------------------------------------
1) 다시 super user 권한을 가지세요.
sudo -s

vol_root=root
vol_home=home

usr_id=atasa # 각자 자신의 아이디 입니다.


#--------------------------------------------------------------
2) /Users 폴더를 복사 합니다.

ditto -rsrcFork /Users /Volumes/$vol_home/Users



#--------------------------------------------------------------
3) 각각의 유저 아이디를 인식시키는 기능 같은데 저도 아직 자세히 모릅니다.

niutil -createprop / /users/$usr_id home /Volumes/$vol_home/Users/$usr_id


#--------------------------------------------------------------
4) /Users 를 삭제하고,

rm -dr /Users

#--------------------------------------------------------------
5) 새 링크를 만듭니다.

ln -s /Volumes/$vol_home/Users /Users


이렇게 홈을 분리해 두면 시스템을 교체하더라도 작업 환경이 그대로 유지 됩니다.

유닉스에는 find 와 comm, diff 등의 명령어들이 있는데 이들을 활용하면 방금 설치한 후에 변화되었거나 추가된 파일 목록을 쉽게 얻어낼 수 있고 그 파일들만 별도의 폴더에 모을 수도 있습니다.

휴~~ 생각보다 길군요. 도움이 될른지 모르겠습니다. ^^


atasa 가 화 2월 01, 2005 12:47 pm에 수정함, 총 7 번 수정됨
위로
ElectronicNomad
the Lord of maczoo
the Lord of maczoo


가입: 2002년 11월 21일
올린 글: 2050
위치: a corner of the network

올리기Posted: 금 1월 28, 2005 1:54 pm    주제:

MS Office 사용자들은 home directory를 옮겼을 경우
Excel에서 macro error가 난다고 보고 되어 있구요,
Word 같은 경우에는 Startup disk에 MS Office가
설치되어 있지 않는 경우에는 crash된다고 해당 기고자가
제보를 받아 첨언하고 있네요...

UNIX의 /usr과 Mac OS X의 /usr의 역할은 다르답니다.
그래서 이것을 움직이는 것은 큰 의미가 없을 것 같구요,
home directory를 다른 partition으로 옮기는 건
제가 해보았던 것인데, 소개해 주신 페이지에서 잘 설명해둔
것 같습니다. 전 /etc/fstab을 수정해서 완전히 옮겨버렸답니다.

swap partition 지정은 정말 효율적일 것 같습니다.

좋은 정보 감사합니다. Smile
위로
xxfree86
lunatic of mac
lunatic of mac


가입: 2004년 2월 25일
올린 글: 152

올리기Posted: 토 3월 05, 2005 11:54 pm    주제:

스왑파일-보통파일이죠-을 물리적으로 다른 디스크가 아닌
같은 디스크의 다른 파티션에 옮긴다고 시스템 성능이 좋아질까요?

흐음...
_________________
변화시킬 수 없는 것을 받아 들일 수 있는 체념과
변화시킬 수 있는 것을 변화시킬 수 있는 용기와
이 둘의 차이를 분별할 수 있는 지혜를.
위로
ElectronicNomad
the Lord of maczoo
the Lord of maczoo


가입: 2002년 11월 21일
올린 글: 2050
위치: a corner of the network

올리기Posted: 일 3월 06, 2005 12:02 am    주제:

xxfree86 씀:
스왑파일-보통파일이죠-을 물리적으로 다른 디스크가 아닌
같은 디스크의 다른 파티션에 옮긴다고 시스템 성능이 좋아질까요?

흐음...


그렇죠~ 물리적으로 다른 디스크로 옮겨야 맞겠죠 Smile
위로
catz
lunatic of mac
lunatic of mac


가입: 2002년 8월 30일
올린 글: 181
위치: 어흥

올리기Posted: 일 3월 06, 2005 6:31 pm    주제:

swap 을 다른 파티션에 옮기면
root의 빈공간이 없어져 시스템이 정지되는 현상을 막을 수 있습니다.

OSX에선 그렇지는 않더군요.^^ 경고만 나긴 하는데
만약, IDC같은곳에 두고 쓰는 서버라면
이정도는 필요하겠죠.
_________________
세벌사랑, 한글사랑
위로
ElectronicNomad
the Lord of maczoo
the Lord of maczoo


가입: 2002년 11월 21일
올린 글: 2050
위치: a corner of the network

올리기Posted: 일 3월 06, 2005 6:54 pm    주제:

catz 씀:
swap 을 다른 파티션에 옮기면
root의 빈공간이 없어져 시스템이 정지되는 현상을 막을 수 있습니다.

OSX에선 그렇지는 않더군요.^^ 경고만 나긴 하는데
만약, IDC같은곳에 두고 쓰는 서버라면
이정도는 필요하겠죠.


Kernel의 type에 따라 다르답니다.
static한 kernel이라면 맞는 이야기가 되겠지만
dynamic kernel이라면, 아무리 swap이라는 변수 큰 파일이 다른 곳에 위치하더라도
root partition이 full이 되면 system은 hangup됩니다.
위로
이전 글 표시:   
이전 글 :: 다음 글  
글 쓰기   답변 달기    maczoo.com 게시판 인덱스 -> Tips & 사용기 시간대: GMT + 9 시간(한국)
페이지 1 중 1

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.4 © 2001, 2003 phpBB Group