· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Jaz-Drive

Jazz-drive mini-HOWTO

Jazz-drive mini-HOWTO

Bob Willmot, bwillmot@cnct.com

v1.6, 1997년 6월 4일 번역: 이 강원, ares@interpia.net SGML 편집: 엄 기성, jurist@netkorea.co.kr
이 HOWTO는 Linux에서 Iomega사의 Jaz Drive를 configure하는 방법과 사용 가능한 drive를 위한 s/w tool에 관한 것이다.

1. 소개

Iomega Jaz drive는 이동식 media를 사용하는 disk drive로 그 media는 1021MB의 용량을 가진다.(역자 주:최근 2GB급의 Jaz drive가 발표된 바 있음) SCSI 인터페이스를 사용하며 내장형 및 외장형 drive 모두 판매 중이다. Iomega에서는 IDE를 사용하는 내장형을 내 놓을 계획도 가지고 있다.

이 글은 Jaz Drive를 Linux에서 어떻게 사용할 것인가에 대하여 설명한다. SCSI 장비이므로 Drew EckhardtSCSI HOWTO가 큰 도움이 될 것이다.

아래의 사람들에게 그들의 공헌과 제공해준 정보에 대해 감사드린다.

  • Grant Gunther, grant@torque.net
  • Tom Poindexter, tpoindex@nyx.net
  • Todd Woods, woods@cs.uiowa.edu
  • Richard B. Melrose, rbm@math.mit.edu
  • Phil Howard, phil@charon.milepost.com
  • Rick Niess, rniess@ocean.st.usm.edu
  • Bob Willmot, bwillmot@cnct.com
  • KLDP, kldp@kldp.linux-kr.org
  • JongDae Choi, petrof@chollian.net

조언, 제안, 틀린 부분에 대한 지적은 역자에게 보내주십시오(6. FAQ부분에 대해 특히..)

2. Jaz disks

1GB를 저장하는 Jaz disk(cartridge, media)는 3.5" floppy disk 세장을 겹쳐놓은 것과 비슷하게 생겼다.

Drive는 앞에 붙어있는 button을 누르거나 s/w적인 명령에 따라 disk를 motor로 밀어내는 기구를 가지고 있다.

2.1 Jaz Jet host adapter

Iomega는 Jaz Jet이라는 이름으로 SCSI host adapter를 판매하고 있다.

현재 두가지 SCSI chipset을 사용한 두 version이 있다.

하나는 Adaptec 7800 family adapter에 기반한 것으로, 2930/2940 adapter와 호환된다. Linux 2.0은 aic7xxx driver로 이 adapter를 지원한다.(이 driver는 Kernel ver 1.3.?부터 도입되었다)

또 다른 adapter는 Advanced Systems chipset에 기반한 것이다.

boot time에 다음과 같은 message를 출력한다.


    Jaz Jet PCI SCSI adapter Copyright Advanced Systems 1996

Kernel을 compile할 때 CONFIG_SCSI_ADVANSYS 변수 set을 사용한다.

3. Jaz drive를 위한 kernel 설정

Jaz drive를 Linux에서 사용하기 위하여 kernel을 SCSI adapter에 맞게 configure해야한다. Kernel을 만드는 법에 대해서는 /usr/src/linux/README file에 나와 있다.

2.x kernel을 위해서는 /usr/src/linux/Documentation directory를 참조한다.

또한 Brian Ward의 Kernel-HOWTO도 참조한다.

4. Boot time에서의 drive 인식

System boot시에 adapter와 그에 연결된 disk에 대한 정보가 display되어야 한다.

Boot message는 SCSI adapter에 따라 다르고, /var/log/messages(또는 /var/adm/messages) file에 기록된다. dmesg 명령으로 command prompt에서 이 message들을 replay해 볼 수 있다.

아래는 Adaptec 2940에 대한 2.0.10 kernel의 booting시 출력이다.


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

위 log에서 raw scsi device name( sda, sdb, 등등)을 주목하라.

나중에 disk를 access하려면 이 이름들이 필요하다. 위와 같은 각각의 message line이 나타나지 않는다면, h/w나 kernel에서 뭔가 잘못 설정된 것이다. scsi0: 로 시작하는 message line이 나타나지 않은 경우, host adapter와 그 driver를 바르게 설정하지 않은 것이다. 어떤 driver는 무엇이 잘못되었는지에 대해 hint를 줄 것이다.

drive가 detect되지 않았다면, 아마 cable에 이상이 있을 것이다. drive 이름이 지정되지 않았다면 kernel을 생성시킬 때 SCSI disk 지원에 관한 내용을 빠뜨린 것일 것이다. 다른 debugging hint에 대해서는 drivers/scsi/README file과 SCSI HOWTO를 참조할 것.

4.1 Fdisk, mke2fs, mount, 기타

일단 Jaz를 위한 drive 이름을 알아냈다면, fdisk, mke2fs, mount 등과 같은 일반 Linux disk 관리 명령으로 drive를 조작할 수 있다. 각각의 사용법에 대해서는 manual page를 참조한다.

4.2 이미 DOS format되어 있던 disk

Iomega에서 출고 당시에 이미 format된 disk들은 하나의 partition을 가지고 있다. (어떤 이유에 의해 Iomega는 4번째 partition을 사용한다. 역자 주 : FAQ를 참조할 것.)

이 disk를 아래의 명령으로 mount할 수 있다. (jaz disk의 raw name은 sda로 가정)

# mkdir /jaz
# mount -t msdos /dev/sda4 /jaz

또는, Windows95/98 VFAT를 지원하도록 생성된 2.0 kernel을 사용하는 경우,

# mkdir /jaz
# mount -t vfat /dev/sda4 /jaz

mount할 수 있다. (이렇게 해서 긴 file 이름으로 읽고 쓰기가 가능하다) Disk의 file들은 /jaz에 나타날 것이다. Disk가 mount되어 있는 동안은 eject할 수 없다.

Drive를 unmount하기 위해서는 아래의 명령을 사용한다:

# umount /dev/sda4

/jaz를 mount point로 만드는 작업은 반복할 필요가 없다. (unmount할 때 /jaz directory에 있어서는 안된다는 점도 확인할 것.)

4.3 Linux disk로 다시 format하기

Jaz disk를 지우고 토종 Linux file system으로 만들고 싶다면, fdisk를 전체 disk에 대해 사용해야 한다.

# fdisk /dev/sda

그리고 기존의 모든 partition을 삭제해야 한다. ( 'd' command를 사용 ) 그 후에 새로운 partition을 'n' command로 생성하고, promary partition으로 만든 뒤 'w' command로 partition table을 disk에 기록하고, 'q' command로 끝낸다.

그리고 생성된 partition을 format한다.

# mke2fs /dev/sda1

('1'은 fdisk에서 이 partition에 준 숫자임) 이제 disk를 mount할 수 있다.

# mount -t ext2 /dev/sda1 /jaz

(위는 전에 만든 mounting point를 사용하는 경우)

4.4 Jaz Tools disk

Jaz drive와 함께 오는 disk를 사용하기 (역자 주:지우거나 쓰기) 위해선 별도의 작업이 필요하다. 출하 시에는 s/w적인 기록 방지가 enable되어 있기 때문이다.

두 가지 방법이 있는데, 하나는 DOS나 Windows에서 "reclaime.exe"를 사용하여 lock을 푸는 것이고,(또는 setup program으로부터 tools를 설치하든가) 또 하나는 Bob Willmot의 jaztools program을 사용하는 것이다.( 5장을 참조)

# jaztool /dev/sda rw

(위에서 /dev/sda는 알맞는 SCSI device에 맞게 고친다) Password를 물어보면,

APlaceForYourStuff

라고 입력한다.

5. Bob Willmot의 jaztools

Iomega의 특별한 기능을 지원하기 위한 Linux program이 아래 사이트에 있다.

http://www.cnct.com/~bwillmot/jaztool/

GUI와 drive 검사 및 자동 mounting/unmouning기능을 지원하는 새로운 version의 jaztool이 곧 준비될 것이다.

6. FAQ

6.1 Jaz tools disk를 read only로만 mount할 수 있다.

Tools disk는 특별한 암호로 보호된 읽기 전용 mode로 출하된다. 푸는데는 두가지 방법이 있는데, 하나는 DOS나 Windows에서 "reclaime.exe"를 사용하여 lock을 푸는 것이고, 또 하나는 Bob Willmot의 jaztools program을 사용하는 것이다.( 5장을 참조)

# jaztool /dev/sda rw

(위에서 /dev/sda는 알맞는 SCSI device에 맞게 고친다) Password를 물어보면,

APlaceForYourStuff
라고 입력한다.

6.2 Jaz가 spin down후에 system을 lock한다.

느낌으로는, Jaz firmware와 관련된 듯 하다. 이런 문제를 가진 모든 사람은 drive의 Revistion을 Bob Willmot에게 알려주기 바란다. Jaz revistion은 아래와 같은 /etc/dmesg의 출력에서 다음 부분에 나와 있다.


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

이런 현상은 일반적인 Linux 사용자에게는 일어나지 않을 듯한 어떤 특정 상황에서만 발생한다. Jaz drive의 partition이 mount되었을 때, file system이 아직 mount되어 있는 중에 driver의 spin이 멈추고, 아직도 idle일 때 block device를 읽으려고 시도하는 경우이다.

Linux가 partition을 재건(?)하기 위해 MBR을 다시 읽으려고 하지만, 어떤 이유에서 때때로 이 시도가 실패하고 device를 명백한 busy상태로 방치하는 듯 하다. Kernel의 MBR 읽기와 process device read는 불가능할 것인데, 이는 lockout 또는 busy state에 기인하는 듯 하다. 이 상태에서 Linux는(?) Jaz drive가 아직도 읽기 상태에 있는 것으로 생각하지만, 사실은 I/O는 일어나지 않는 것이다. Bob Willmot의 경우, 이런 현상은 대부분 block device가 MBR을 읽을 때 발생한다고 한다.

6.3 Jaz drive로부터 boot할 수 있는가 ?

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로 지정할 것이다.(BIOS 0x80) 다른 BIOS들의 경우, 아마 모든 IDE drive를 설정 해제해야 할 것이다. 또 다른 BIOS들의 경우, 물리적으로 IDE drive를 떼어 내든지 IDE interface를 disable해야 할 것이다.

6.4 왜 Iomega는 partition 4번을 사용하는가 ?

Partition 4는 Macintosh의 기본 partition이다.

Mac에서는, 첫 partition이 boot 정보를 위한 공간으로 예약되어 있고, 두 번째는 system정보, 세 번째는 resource fork, 그리고 4번째가 data fork이다.

어쨌든, PC와 대부분의 다른 system에서 4번째 partition을 쓸 수 있는 반면, Mac은 다른 partition은 전혀 사용할 수 없다. Iomega는 미리 format하는 모든 media를 출시할 때 partition 4를 사용하여 PC와 Mac모두에서 커다란 호환성 문제를 예방하고 있다.

6.5 어떻게하면 boot할 때 disk를 mount시킬 수 있는가 ?

/etc/fstab file에 한줄을 추가하기만 하면 된다. 예를 들어, 항상 DOS disk를 drive안에 넣고 boot한다면

# /dev/sda4 /jaz msdos defaults 0 0

라고 fstab 안에 기록해 준다.(역자 주 : Iomega에서는 4번 partition을 사용하므로 /dev/sda4라고 하는 것으로 생각됨) 각자의 상황에 따라 다르겠지만, 초기화 script는 fstab에 기록된 각 partition에 대해 fsck를 실행시키려 할 것이다. 만일, disk를 boot할 때 drive 안에 넣는 것을 잊는거나 잘못된 disk 를 넣어둔다면(역자 주: 다른 type으로 format된 disk 등) 문제를 일으킬 수 있다.

이 문제를 피하기 위해, /etc/rc.d/rc.local에 Jaz를 mount하기 위한 별도의 mount 명령을 추가할 수도 있다. 이렇게 함으로써 drive에 catridge가 없는 상황에서 표준 "mount -a" 명령에 의해 발생될 문제를 피할 수 있다.

6.6 Boot시 disk가 없다면 어떻게 되나 ?

Kernel이 partition table을 읽으려 할 때 (결국) operation time out이 발생할 것이다.

Disk를 바꿀 때는 fsck를 사용하여 새 disk의 partition 구조를 확인하는 것이 좋다.

어떤 SCSI host adapter의 BIOS는 system boot 중에 disk의 partition table을 읽으려고 할 것이다. 이것을 방지할 수 없다면, (당신의 의지와는 상관 없이) 아마 반드시 drive에 disk를 넣은 채로 boot하여야 할 것이다.

6.7 어떻게 하면 Jaz cartridge를 self-bootable하게 만들 수 있는가 ?

(BIOS에서 허용한다고 가정했을 경우.)

Jaz drive/cartridge는 훌륭한 응급 복구용 disk가 될 수 있다. 또한 새로운 Linux system을 사용할 수 있다거나 Jaz를 갖춘 다른 사람의 machine에서 Linux를 쓸 수 있다면 재미있을 것이다.

Jaz drive가 system의 유일한 drive라면, 원하는 대로 설치 procedure를 진행할 수 있을 것이다. 그러나, 현재 작동하는 system으로부터 self-bootable한 system을 Jaz cartridge에 "건설"하는 것도 가능하다.

  1. drive에 partition을 생성시키고 filesystem을 만든다. 아마 swap partition도 만들어야할 것이다. 하지만, RAM이 많다면 필요 없다. 새로운 root를 /jaz로 mount하고 그 안의 추가적인 partition을 그 안의 적절한 directory에 mount한다.
  2. 모든 file을 제자리에 복사한다. /dev의 모든 file을 copy해야만 한다. permission, ownership과 group id가 그대로인지 확인한다.
  3. Jaz cartridge의 file들을 booting 환경에 맞게 설정한다. 특히 /jaz/etc/fstab에서 Jaz cartridge partition을 알맞게 mount시키도록 주의한다. 또한 /jaz/etc/lilo.conf도 맞추어야 한다.
  4. 이 단계에는 두가지 방법이 있다 :

    1. Kernel image floppy를 만들고 rdev를 써서 Jaz cartridge가 root로 mount되도록 한다. 준비가 되면 floppy로 boot하여 lilo를 실행시키고 Jaz MBR을 bootable하게 만든다.
    2. Jaz가 아닌 root로부터 lilo를 실행시켜 Jaz cartridge에 bootable MBR을 설치할 수 있다.

첫번째 system definition 전에 아래의 내용을 /jaz/etc/lilo.conf file에 추가시킨다. ("1"을 root partition number로 바꾸고 "sda"를 적당한 Jaz device 이름으로 바꾼다)


drive = /dev/sda1
bios = 0x80

Jaz MBR을 설치할 준비가 되었다면, /jaz tree가 마치 /에 있는 것처럼 작동시키기 위해 lilo를 -r option으로 실행시킨다. 이 명령은 다음과 같다.

# lilo -r /jaz

보통, lilo는 boot시 boot device의 BIOS device number를 찾기 위한 탐색을 실시한다. 추가된 2줄이 이 작업을 한다.

lilo와 kernel로부터 여러 error message가 나타날 것이다. lilo는 이 경우가 아니면 문제되지 않을 문제점에 대해 경고할 것이다. Kernel은 lilo가 무언가 알아내기(역자 주:discover) 위해 device를 찾는 probe에 의해 촉발되는 /dev/hdc와 관련된 문제를 제시할 것이다. 이런 message는 무시해도 된다.

"쓰기"가 발생하는지 Jaz drive light를 주시할 것. 이 때, Jaz drive는 반드시 bootable해야 한다.

7. 더 많이 알고 싶다면

  • 최신 mini-HOWTO 원문은 다음 주소에서 볼 수 있다. http://www.cnct.com/~bwillmot/jaztool/
  • Iomega의 web page는 다음 주소에 있다. http://www.iomega.com
  • Linux 문서 한글화 project의 homepage http://kldp.linux-kr.org




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0021 sec