Linuxdoc Sgml/Jaz-Drive
<!doctype linuxdoc system>
<!-- 번 역 : 이강원 <ares@interpia.net>
sgml변환 : 엄기성 <jurist@netkorea.co.kr>
-->
<article>
<!-- Title information -->
<title>Jazz-drive mini-HOWTO
<author>Bob Willmot, <em><htmlurl url="mailto:bwillmot@cnct.com" name="bwillmot@cnct.com"></em>
<date>v1.6, 1997년 6월 4일
<trans>번역: 이 강원, <em><htmlurl url="mailto:ares@interpia.net" name="ares@interpia.net"></em>
<trans>SGML 편집: 엄 기성, <em><htmlurl url="mailto:jurist@netkorea.co.kr" name="jurist@netkorea.co.kr"></em>
<abstract>
이 HOWTO는 Linux에서 <em><bf>Iomega</bf></em>사의 <em><bf>Jaz Drive</bf></em>를 configure하는 방법과 사용 가능한
drive를 위한 s/w tool에 관한 것이다.
</abstract>
<!-- Table of contents -->
<toc>
<!-- Begin the document -->
<sect>소개
<p>
<em><bf>Iomega Jaz drive</bf></em>는 이동식 media를 사용하는 disk drive로 그 media는 <bf>1021MB</bf>의
용량을 가진다.(역자 주:최근 <bf>2GB</bf>급의 Jaz drive가 발표된 바 있음) SCSI 인터페이스를
사용하며 내장형 및 외장형 drive 모두 판매 중이다. Iomega에서는 IDE를
사용하는 내장형을 내 놓을 계획도 가지고 있다.
이 글은 Jaz Drive를 Linux에서 어떻게 사용할 것인가에 대하여 설명한다. SCSI
장비이므로 <bf>Drew Eckhardt</bf>의 <htmlurl url="http://sunsite.unc.edu/pub/Linux/docs/HOWTO/SCSI-HOWTO" name="SCSI HOWTO">가 큰 도움이 될 것이다.
아래의 사람들에게 그들의 공헌과 제공해준 정보에 대해 감사드린다.
<itemize>
<item>Grant Gunther, grant@torque.net
<item>Tom Poindexter, tpoindex@nyx.net
<item>Todd Woods, woods@cs.uiowa.edu
<item>Richard B. Melrose, rbm@math.mit.edu
<item>Phil Howard, phil@charon.milepost.com
<item>Rick Niess, rniess@ocean.st.usm.edu
<item>Bob Willmot, bwillmot@cnct.com
<item>KLDP, kldp@kldp.linux-kr.org
<item>JongDae Choi, petrof@chollian.net
</itemize>
조언, 제안, 틀린 부분에 대한 지적은 <htmlurl url="mailto:ares@interpia.net" name="역자">에게 보내주십시오(6. <ref id="faq" name="FAQ부분">에 대해 특히..)
<sect>Jaz disks
<p>
1GB를 저장하는 Jaz disk(cartridge, media)는 3.5" floppy disk 세장을 겹쳐놓은
것과 비슷하게 생겼다.
Drive는 앞에 붙어있는 button을 누르거나 s/w적인 명령에 따라 disk를 motor로
밀어내는 기구를 가지고 있다.
<sect1>Jaz Jet host adapter
<p>
Iomega는 Jaz Jet이라는 이름으로 SCSI host adapter를 판매하고 있다.
현재 두가지 SCSI chipset을 사용한 두 version이 있다.
하나는 <bf>Adaptec 7800 family adapter</bf>에 기반한 것으로, 2930/2940 adapter와
호환된다. Linux 2.0은 aic7xxx driver로 이 adapter를 지원한다.(이 driver는
<em><bf>Kernel ver 1.3.?</bf></em>부터 도입되었다)
또 다른 adapter는 <bf>Advanced Systems chipset</bf>에 기반한 것이다.
boot time에 다음과 같은 message를 출력한다.
<code>
Jaz Jet PCI SCSI adapter Copyright Advanced Systems 1996
</code>
Kernel을 compile할 때 <em><bf>CONFIG_SCSI_ADVANSYS</bf></em> 변수 set을 사용한다.
<sect>Jaz drive를 위한 kernel 설정
<p>
Jaz drive를 Linux에서 사용하기 위하여 kernel을 SCSI adapter에 맞게 configure해야한다.
Kernel을 만드는 법에 대해서는 <em><bf>/usr/src/linux/README</bf></em> file에 나와 있다.
2.x kernel을 위해서는 <em><bf>/usr/src/linux/Documentation</bf></em> directory를 참조한다.
또한 Brian Ward의 <htmlurl url="http://sunsite.unc.edu/pub/Linux/docs/HOWTO/Kernel-HOWTO" name="Kernel-HOWTO">도 참조한다.
<sect>Boot time에서의 drive 인식
<p>
System boot시에 adapter와 그에 연결된 disk에 대한 정보가 display되어야 한다.
Boot message는 SCSI adapter에 따라 다르고, <em><bf>/var/log/messages(또는
/var/adm/messages)</bf></em> file에 기록된다. <em><bf>dmesg</bf></em> 명령으로 command prompt에서 이 message들을 replay해 볼 수 있다.
아래는 Adaptec 2940에 대한 2.0.10 kernel의 booting시 출력이다.
<code>
aic7xxx: BurstLen = 8 DWDs, Latency Timer = 64 PCLKS
aic7xxx: AHA-2940 Ultra Rev B.
aic7xxx: devconfig = 0x580.
aic7xxx: Reading SEEPROM...done.
aic7xxx: Extended translation enabled.
aic7xxx: Using 16 SCB's after checking for SCB memory.
AHA-2940 Ultra (PCI-bus):
irq 11
bus release time 40 bclks
data fifo threshold 100%
SCSI CHANNEL A:
csi id 7
scsi selection timeout 256 ms
scsi bus reset at power-on enabled
scsi bus parity enabled
scsi bus termination (low byte) enabled
aic7xxx: Downloading sequencer code...done.
aic7xxx: Resetting the SCSI bus...done.
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 3.2/3.1/3.0
scsi : 1 host.
aic7xxx: Scanning channel A for devices.
aic7xxx: Target 4, channel A, now synchronous at 10.0MHz, offset(0xf).
Vendor: iomega� Model: jaz 1GB Rev: G.60
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi removable disk sda at scsi0, channel 0, id 4, lun 0
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 2091050 [1021 MB] [1.0 GB]
sda: Write Protect is off
</code>
위 log에서 <bf>raw scsi device name( sda, sdb, 등등)</bf>을 주목하라.
나중에 disk를 access하려면 이 이름들이 필요하다. 위와 같은 각각의 message line이 나타나지 않는다면, h/w나 kernel에서 뭔가 잘못 설정된 것이다.
<em><bf>scsi0</bf></em>: 로 시작하는 message line이 나타나지 않은 경우, host adapter와 그
driver를 바르게 설정하지 않은 것이다. 어떤 driver는 무엇이 잘못되었는지에 대해 hint를 줄 것이다.
drive가 detect되지 않았다면, 아마 cable에 이상이 있을 것이다. drive 이름이
지정되지 않았다면 kernel을 생성시킬 때 SCSI disk 지원에 관한 내용을 빠뜨린 것일 것이다.
다른 debugging hint에 대해서는 drivers/scsi/README file과 SCSI HOWTO를
참조할 것.
<sect1>Fdisk, mke2fs, mount, 기타
<p>
일단 Jaz를 위한 drive 이름을 알아냈다면, <em><bf>fdisk, mke2fs, mount</bf></em> 등과 같은 일반 Linux disk 관리 명령으로 drive를 조작할 수 있다.
각각의 사용법에 대해서는 manual page를 참조한다.
<sect1>이미 DOS format되어 있던 disk
<p>
Iomega에서 출고 당시에 이미 format된 disk들은 하나의 partition을 가지고
있다. (어떤 이유에 의해 Iomega는 4번째 partition을 사용한다. 역자 주 :<bf><ref id="faq" name="FAQ"></bf>를
참조할 것.)
이 disk를 아래의 명령으로 mount할 수 있다. (jaz disk의 raw name은 sda로
가정)
<tscreen><verb>
# mkdir /jaz
# mount -t msdos /dev/sda4 /jaz
</verb></tscreen>
또는, <em><bf>Windows95/98 VFAT</bf></em>를 지원하도록 생성된 2.0 kernel을 사용하는 경우,
<tscreen><verb>
# mkdir /jaz
# mount -t vfat /dev/sda4 /jaz
</verb></tscreen>
mount할 수 있다. (이렇게 해서 긴 file 이름으로 읽고 쓰기가 가능하다)
Disk의 file들은 <em><bf>/jaz</bf></em>에 나타날 것이다. Disk가 mount되어 있는 동안은 eject할
수 없다.
Drive를 unmount하기 위해서는 아래의 명령을 사용한다:
<tscreen><verb>
# umount /dev/sda4
</verb></tscreen>
<em><bf>/jaz</bf></em>를 mount point로 만드는 작업은 반복할 필요가 없다. (unmount할 때 <em><bf>/jaz</bf></em>
directory에 있어서는 안된다는 점도 확인할 것.)
<sect1>Linux disk로 다시 format하기
<p>
Jaz disk를 지우고 토종 Linux file system으로 만들고 싶다면, <em><bf>fdisk</bf></em>를 전체
disk에 대해 사용해야 한다.
<tscreen><verb>
# fdisk /dev/sda
</verb></tscreen>
그리고 기존의 모든 partition을 삭제해야 한다. <em>( 'd' command를 사용 )</em> 그 후에
새로운 partition을 <em>'n' command</em>로 생성하고, promary partition으로 만든 뒤 'w'
command로 partition table을 disk에 기록하고, <em>'q' command</em>로 끝낸다.
그리고 생성된 partition을 format한다.
<tscreen><verb>
# mke2fs /dev/sda1
</verb></tscreen>
('1'은 <em><bf>fdisk</bf></em>에서 이 partition에 준 숫자임) 이제 disk를 mount할 수 있다.
<tscreen><verb>
# mount -t ext2 /dev/sda1 /jaz
</verb></tscreen>
(위는 전에 만든 mounting point를 사용하는 경우)
<sect1>Jaz Tools disk
<p>
Jaz drive와 함께 오는 disk를 사용하기 (역자 주:지우거나 쓰기) 위해선 별도의
작업이 필요하다. 출하 시에는 s/w적인 기록 방지가 <em><bf>enable</bf></em>되어 있기 때문이다.
두 가지 방법이 있는데, 하나는 DOS나 Windows에서 <em><bf>"reclaime.exe"</bf></em>를 사용하여
lock을 푸는 것이고,(또는 setup program으로부터 tools를 설치하든가) 또 하나는
Bob Willmot의 <em><bf>jaztools</bf></em> program을 사용하는 것이다.(<ref id="jaztools" name="5장">을 참조)
<tscreen><verb>
# jaztool /dev/sda rw
</verb></tscreen>
(위에서 <em><bf>/dev/sda</bf></em>는 알맞는 SCSI device에 맞게 고친다) Password를 물어보면,
<tscreen><verb>
APlaceForYourStuff
</verb></tscreen>
라고 입력한다.
<sect>Bob Willmot의 <em>jaztools</em><label id="jaztools">
<p>
Iomega의 특별한 기능을 지원하기 위한 Linux program이 <htmlurl url="http://www.cnct.com/~bwillmot/jaztool/" name="아래 사이트">에 있다.
http://www.cnct.com/˜bwillmot/jaztool/
GUI와 drive 검사 및 자동 mounting/unmouning기능을 지원하는 새로운 version의
jaztool이 곧 준비될 것이다.
<sect>FAQ<label id="faq">
<p>
<sect1>Jaz tools disk를 read only로만 mount할 수 있다.
<p>
Tools disk는 특별한 암호로 보호된 읽기 전용 mode로 출하된다.
푸는데는 두가지 방법이 있는데, 하나는 DOS나 Windows에서 <em><bf>"reclaime.exe"</bf></em>를
사용하여 <bf>lock</bf>을 푸는 것이고, 또 하나는 Bob Willmot의 <em><bf>jaztools</bf></em> program을 사용하는
것이다.(<ref id="jaztools" name="5장">을 참조)
<tscreen><verb>
# jaztool /dev/sda rw
</verb></tscreen>
(위에서 /dev/sda는 알맞는 SCSI device에 맞게 고친다) Password를 물어보면,
<tscreen><verb>
APlaceForYourStuff
</verb></tscreen>
라고 입력한다.
<sect1>Jaz가 spin down후에 system을 lock한다.
<p>
느낌으로는, <bf>Jaz firmware</bf>와 관련된 듯 하다. 이런 문제를 가진 모든 사람은
drive의 Revistion을 <htmlurl url="mailto:bwillmot@cnct.com" name="Bob Willmot">에게 알려주기 바란다. Jaz
revistion은 아래와 같은 <em><bf>/etc/dmesg</bf></em>의 출력에서 다음 부분에 나와 있다.
<code>
scsi0: Target 4, channel A, now synchronous at 10.0MHz, offset 15.
Vendor: iomega Model: jaz 1GB Rev: G.60
Type: Direct-Access ANSI SCSI revision: 02
</code>
이런 현상은 일반적인 Linux 사용자에게는 일어나지 않을 듯한 어떤 특정
상황에서만 발생한다. Jaz drive의 partition이 mount되었을 때, file system이 아직 mount되어 있는 중에 driver의 spin이 멈추고, 아직도 <bf>idle</bf>일 때 block
device를 읽으려고 시도하는 경우이다.
Linux가 partition을 재건(?)하기 위해
MBR을 다시 읽으려고 하지만, 어떤 이유에서 때때로 이 시도가 실패하고 device를
명백한 busy상태로 방치하는 듯 하다. Kernel의 MBR 읽기와 process device
read는 불가능할 것인데, 이는 <em><bf>lockout</bf></em> 또는 <em><bf>busy state</bf></em>에 기인하는 듯 하다. 이
상태에서 Linux는(?) Jaz drive가 아직도 읽기 상태에 있는 것으로 생각하지만,
사실은 I/O는 일어나지 않는 것이다. Bob Willmot의 경우, 이런 현상은 대부분
block device가 MBR을 읽을 때 발생한다고 한다.
<sect1>Jaz drive로부터 boot할 수 있는가 ?
<p>
Jaz drive의 SCSI ID는 0~6사이의 어떤 값으로도 지정할 수 있다.
다른 SCSI hard drive와 함께 연결되어 있을 경우, 대부분의 BIOS는 최저 SCSI ID
값을 가진 disk로부터 boot하려고 할 것이다. 어떤 것은 Jaz와 같은 이동식
drive인지 detect하고 무시해버린다.
IDE hard drive와 공존할 경우에는, 거의 모든 BIOS가 첫번째 IDE HDD로부터
boot하려고 할 것이다. 어떤 BIOS는 첫번째 IDE drive를 설정 해제하는 것을
허용하고 첫번째 SCSI drive를 boot device로 지정할 것이다.<bf>(BIOS 0x80)</bf> 다른
BIOS들의 경우, 아마 모든 IDE drive를 설정 해제해야 할 것이다. 또 다른
BIOS들의 경우, 물리적으로 IDE drive를 떼어 내든지 IDE interface를
disable해야 할 것이다.
<sect1>왜 Iomega는 partition 4번을 사용하는가 ?
<p>
Partition 4는 <bf>Macintosh</bf>의 기본 partition이다.
Mac에서는, 첫 partition이 boot 정보를 위한 공간으로 예약되어 있고, 두 번째는
system정보, 세 번째는 resource fork, 그리고 4번째가 data fork이다.
어쨌든, PC와 대부분의 다른 system에서 4번째 partition을 쓸 수 있는 반면,
Mac은 다른 partition은 전혀 사용할 수 없다. Iomega는 미리 format하는 모든
media를 출시할 때 partition 4를 사용하여 PC와 Mac모두에서 커다란 호환성
문제를 예방하고 있다.
<sect1>어떻게하면 boot할 때 disk를 mount시킬 수 있는가 ?
<p>
<em><bf>/etc/fstab</bf></em> file에 한줄을 추가하기만 하면 된다. 예를 들어, 항상 DOS disk를
drive안에 넣고 boot한다면
<tscreen><verb>
# /dev/sda4 /jaz msdos defaults 0 0
</verb></tscreen>
라고 <em><bf>fstab</bf></em> 안에 기록해 준다.(역자 주 : Iomega에서는 4번 partition을
사용하므로 <em><bf>/dev/sda4</bf></em>라고 하는 것으로 생각됨) 각자의 상황에 따라 다르겠지만,
초기화 script는 <em><bf>fstab</bf></em>에 기록된 각 partition에 대해 <em><bf>fsck</bf></em>를 실행시키려 할
것이다. 만일, disk를 boot할 때 drive 안에 넣는 것을 잊는거나 잘못된 disk 를
넣어둔다면(역자 주: 다른 type으로 format된 disk 등) 문제를 일으킬 수 있다.
이 문제를 피하기 위해, <em><bf>/etc/rc.d/rc.local</bf></em>에 Jaz를 mount하기 위한 별도의
mount 명령을 추가할 수도 있다. 이렇게 함으로써 drive에 catridge가 없는
상황에서 표준 <em><bf>"mount -a"</bf></em> 명령에 의해 발생될 문제를 피할 수 있다.
<sect1>Boot시 disk가 없다면 어떻게 되나 ?
<p>
Kernel이 partition table을 읽으려 할 때 (결국) <bf>operation time out</bf>이 발생할
것이다.
Disk를 바꿀 때는 fsck를 사용하여 새 disk의 partition 구조를 확인하는 것이
좋다.
어떤 SCSI host adapter의 BIOS는 system boot 중에 disk의 partition table을
읽으려고 할 것이다. 이것을 방지할 수 없다면, (당신의 의지와는 상관 없이)
아마 반드시 drive에 disk를 넣은 채로 boot하여야 할 것이다.
<sect1>어떻게 하면 Jaz cartridge를 self-bootable하게 만들 수 있는가 ?
<p>
(BIOS에서 허용한다고 가정했을 경우.)
Jaz drive/cartridge는 훌륭한 응급 복구용 disk가 될 수 있다. 또한 새로운
Linux system을 사용할 수 있다거나 Jaz를 갖춘 다른 사람의 machine에서 Linux를
쓸 수 있다면 재미있을 것이다.
Jaz drive가 system의 유일한 drive라면, 원하는 대로 설치 procedure를 진행할
수 있을 것이다. 그러나, 현재 작동하는 system으로부터 self-bootable한 system을 Jaz
cartridge에 "건설"하는 것도 가능하다.
<enum>
<item>drive에 partition을 생성시키고 filesystem을 만든다. 아마 swap partition도 만들어야할 것이다. 하지만, RAM이 많다면 필요 없다. 새로운 root를 <em><bf>/jaz</bf></em>로 mount하고 그 안의 추가적인 partition을 그 안의 적절한 directory에 mount한다.
<p>
<item>모든 file을 제자리에 복사한다. <em><bf>/dev</bf></em>의 모든 file을 copy해야만 한다. <bf>permission, ownership과 group id</bf>가 그대로인지 확인한다.
<p>
<item>Jaz cartridge의 file들을 booting 환경에 맞게 설정한다. 특히 <em><bf>/jaz/etc/fstab</bf></em>에서 Jaz cartridge partition을 알맞게 mount시키도록 주의한다. 또한 <em><bf>/jaz/etc/lilo.conf</bf></em>도 맞추어야 한다.
<p>
<item>이 단계에는 두가지 방법이 있다 :
<p>
<enum>
<item>Kernel image floppy를 만들고 rdev를 써서 Jaz cartridge가 root로 mount되도록 한다. 준비가 되면 floppy로 boot하여 lilo를 실행시키고 Jaz MBR을 bootable하게 만든다.
<p>
<item>Jaz가 아닌 root로부터 <em><bf>lilo</bf></em>를 실행시켜 Jaz cartridge에 bootable MBR을 설치할 수 있다.
</enum>
</enum>
첫번째 <bf>system definition</bf> 전에 아래의 내용을 <em><bf>/jaz/etc/lilo.conf</bf></em> file에
추가시킨다. ("1"을 root partition number로 바꾸고 "sda"를 적당한 Jaz device 이름으로
바꾼다)
<code>
drive = /dev/sda1
bios = 0x80
</code>
Jaz MBR을 설치할 준비가 되었다면, <em><bf>/jaz</bf></em> tree가 마치 <em><bf>/</bf></em>에 있는 것처럼 작동시키기 위해 lilo를 <em><bf>-r</bf></em> option으로 실행시킨다. 이 명령은 다음과 같다.
<tscreen><verb>
# lilo -r /jaz
</verb></tscreen>
보통, lilo는 boot시 boot device의 BIOS device number를 찾기 위한 탐색을
실시한다. 추가된 2줄이 이 작업을 한다.
lilo와 kernel로부터 여러 <bf>error message</bf>가 나타날 것이다. lilo는 이 경우가
아니면 문제되지 않을 문제점에 대해 경고할 것이다. Kernel은 lilo가 무언가
알아내기(역자 주:discover) 위해 device를 찾는 <em><bf>probe</bf></em>에 의해 촉발되는
<em><bf>/dev/hdc</bf></em>와 관련된 문제를 제시할 것이다. 이런 message는 무시해도 된다.
"쓰기"가 발생하는지 <bf>Jaz drive light</bf>를 주시할 것.
이 때, Jaz drive는 반드시 <bf>bootable</bf>해야 한다.
<sect>더 많이 알고 싶다면
<p>
<itemize>
<item>최신 mini-HOWTO 원문은 <htmlurl url="http://www.cnct.com/~bwillmot/jaztool/" name="다음 주소">에서 볼 수 있다. http://www.cnct.com/˜bwillmot/jaztool/
<item>Iomega의 web page는 <htmlurl url="http://www.iomega.com/" name="다음 주소">에 있다. http://www.iomega.com
<item> Linux 문서 한글화 project의 <htmlurl url="http://kldp.linux-kr.org" name="homepage"> http://kldp.linux-kr.org
</itemize>
</article>
|
You will be singled out for promotion in your work. |











