- 도스로 부팅. size=원하는 만큼의 swap공간으로 도스 파티션을 생성
(FDISK 이용). "LABEL X:" 혹은 "COPY FOO X:DUMMY.DAT" 같은
명령어에서 X로 표시된 부분을 드라이브 문자로 할당 받을것이다.
- 도스의 포맷 명령을 이용하여 파티션을 포맷한다.
FORMAT X:
- 도스의 LABEL명령을 이용하여 이 파티션의 volume label을 SWAP SPACE로
설정하라. DIR명령으로 이를 확인하라. 부디 별도의 단계로서 이를 하도록
하여라. 몇몇 FORMAT의 버전은 부트섹터에 volume label을 넣지 못할지도
모른다. [경고: 몇몇 사람들은 volume label이 루트 디렉토리에 저장된다고
말하라고 합니다. 맞는 말이지만, 최소한 도스 5.0이후로는 boot sector에
쓰여집니다.
LABEL X:
DIR X:
- 윈도우를 시작한다. 제어판으로 가서 386 Enhanced를 선택한후 가상메모리를
선택하고 drive X:에 최대 크기의 (윈도우가 최대 크기를 알려 줄 것이다.)
윈도우의 영구 스왑화일을 생성하라. 윈도우가 지나치게 큰 파일은
사용할수 없다고 불평할지도 모른다.
- 윈도우를 빠져나간다.
- 리눅스로 부팅한후 루트로 로그인한다.
- 파티션의 이름과 블록의 크기를 찾기위해서 fdisk명령어를 이용한다.
/dev/winswap으로부터 이 파티션에 symbolic link를 생성한다. 만약
파티션이 hda7이면 다음을 type하라.
ln -s /dev/hda7 /dev/winswap
[순수하도록 주의: 부디 symlink를 이용하라. 이 파티션의 이름은
몇몇 설정 파일로 갈것이고, 불일치는 치명적일수 있다.
- 다음은 파티션을 분석한 그리고 몇가지 특별한 정보로부터 얻어진
uuencode된 binary이다. 다음 파일을 uudecode하고 gunzip하고 다음과 같이
실행하라.
msinfo /dev/winswap
begin 755 msinfo.gz
"Total special sectors" 라고 하는 부분의 숫자를 기록해두고, volume label이
SWAP SPACE인지 검증하라. 만약 그렇지 않으면 도스로 재부팅하고
LABEL 명령을 다시 실행시켜라. 만약 여전히 작동하지 않는다면 당신이
사용중인 도스의 버전에 대해 나에게 알려주면, 당신을 돕도록 노력할 것이다.
- [선택 과정[ 윈도우는 때때로 이 파티션에 약간의 공간을 남길지도 모른다.
이 공간을 사용하려 하지 마라. 왜냐면 당신이 리눅스를 실행할 때 언제든
지워질수도 있다. 만약 그것을 갑자기 사용하는 것 (그리고 data를 잃는 것)
을 막으려면, 당신은 다음 명령어를 이용하여 공간을 채우는 dummy file을
만들어야 한다:
mkdir /mnt
mount -t msdos /dev/winswap /mnt
dd if=/dev/zero of=/mnt/dummy.fil
umount /mnt
dd명령어는 남은 용량이 없다고 알릴 것이다. 이것이 바로 우리가 원하는
것이다.
- 셧다운 파일의 이름을 확인하라. SysVinit에서 이것은 /etc/inittab의
다음 라인에 나열되는 파일이다. 만약 그것이 없으면 덧붙여라.
# Runlevel 0 means shut down the system
l0:0:wait:/etc/brc
이 파일의 나머지 부분에서 파일이름이 /etc/brc였다고 가정할 것이다.
- 다음을 타이프하라.
dd if=/dev/winswap bs=512 count=XXX | gzip -9 > /etc/winswap.gz
^^^
... XXX를 "Total special sectors" 숫자로 대체하라.
- 다음의 /etc/rc파일을 code의 다음 부분에 덧붙이고,( init가 그것을
호출하건간에), "swapon -a" 명령어 앞을 정정하라. (만약 그러한
명령어가 없으면 아무 mount 명령어 앞을 정정하라.)
만약 /etc/rc.d 디렉토리가 있으면, 여기에 넣기를 원하는 파일은
/etc/rc.d/rc.S 혹은 /etc/rc.d/rc/boot로 호출되어야 한다.
만약 swapon이 /etc에 있으면 /sbin/swapon을 /etc/swapon으로 대체하라.
만약 그것이 /bin에 있으면 /bin/swapon으로 대체하라. mkswap에 대해서도
똑같이 하라. XXXXX를 fdisk에 주어진대로 블록의 실제 파티션 크기로
대체하라.
---[BEGIN CODE SEGMENT]---
#
# 스왑 공간을 검증하고 초기화
#
echo -n 'Verifying swap space... '
if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
= 'SWAP-SPACE' ]; then
echo 'Linux signature found'
/sbin/swapon /dev/winswap
elif [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=11 skip=43`" \
= 'SWAP SPACE ' ]; then
echo 'DOS signature found'
/sbin/mkswap /dev/winswap XXXXX
/sbin/swapon /dev/winswap
else
echo 'No signature found'
echo 'ERROR: Will not swap'
fi
---[END CODE SEGMENT]---
- 다음의 코드를 /etc/brc파일에 덧붙여라.(/etc/rc.d디렉토리가 있으면
/etc/rc.d/rc.0 혹은 /etc/rc.d/rc.halt가 호출되든간에); 스왑이 필요한
어떤 명령어 뒤에 이것을 넣어라.
---[BEGIN CODE SEGMENT]---
#
# Terminate swapping and restore DOS/Windows swap info
#
/sbin/swapoff /dev/winswap
if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
= 'SWAP-SPACE' ]; then
echo 'Restoring DOS/Windows swap info'
/bin/zcat /etc/winswap.gz > /dev/winswap
else
echo 'ERROR: /dev/winswap lacks swap signature, skipping restore'
fi
---[END CODE SEGMENT]---
- 리눅스를 재부팅하라. 당신은 지금 새로운 스왑 장치에 스왑을 하고 있을
것이다.