다음 이전 차례

4. Umsdos 시스템 부팅 방법

4.1 Loadlin

lodlin15.tgz 라는 패키지가 sunsite.unc.edu 의 /pub/Linux/system/Bootutils 에 있다. 이 유틸리티는 Umsdos 시스템 을 부팅하기에 적당하다. 보통은 아래와 같다.

DOS를 부팅한다. C:>loadlinx zimage root=D: [역주 :C 드라이브가 있는 디렉토리에 loadlinx.exe 와 zimage 가 있다고 가정. 상세한것은 loadlin 문서를 참조]

여기서, zimage 는 보통 (압축된) 커넬 이미지로서, 단순히 DOS 드라이브 의 어딘가에 복사된 것이다. D:는 Linux를 인스톨한 DOS 드라이브이다.

4.2 floppy로부터

Umsdos 시스템을 부팅하는 것은, Ext2 시스템을 부팅하는 것과 어떠한 변화도 없다. 커넬 이미지 zImage 에, Umsdos 의 루트 파티션이 어디에 있는지 설정해 둘 필요가 있다. 이것은 보통 커멘드 rdev로 할 수 있다. 이하의 순서로 zImage를 초기화 floppy에 넣는다.

      rdev zImage /dev/hda1
      rdev -R zImage 0
      dd if=zImage bs=8192 of=/dev/fd0
만약 이것이 번거롭게 생각되었다면, 기동가능한 DOS floppy를 만들어 이하의 파일을 그곳에 넣어 둔다. 그리고, autoexec.bat 에 이와 같이 입력한다.
      loadlinx zimage rw root=C:

4.3 LILO

Linux 공식 부트 로더인 LILO도 Umsdos 시스템을 부팅하는데 이용 할 수 있다. 그러나 내가 실제로 경험한 것이 아니다. 1.1.60 이후에서, 이용 가능하다. 무엇인가알고 있는 것이 있으면 메일을 바란다.

4.4 Umsdos 파티션을 defragment하는 방법

인기있는 DOS 툴로 defragment할 수 있다. Umsdos에서 제공되고 있는 파일에 나쁜 영향은 없다. Umsdos는 DOS 파일 시스템 상에서 특수한 것을 (디렉토리 레이아웃, 디렉토리 엔트리의 차례, 등) 요구하지 않는다. 내가 알고 있는 한, Linux 상에서 defragment해 주는 툴은 없다.

4.5 Advance tricks

Umsdos는 DOS 디렉토리에 있는 --linux.--- 에 의해 성립되어있다. 대수롭지 않은 실험을 해 보고 싶게 될지도 모른다. umssync 와 umssetup는 모두 umsdos_progs 패키지에 들어 있다, udosctl 라는 유틸리티를 사용하면, --linux.--- 와 DOS 디렉토리와는 무관하게, listing, 삭제하는 기초 본적인 디렉토리 조작을 할 수 있다.

4.6 기본 원리

4.7 Introduction

Umsdos는 Linux 파일을 직접 Ms-DOS 파일에 할당한다. 이것은 일대일의 대응으로서, 파일의 내용은 전혀 조작되지 않는다. Umsdos는 파일명에 대해서 만 취급한다. 링크와 장치 파일등 특수 파일에 대해서는 달리 취급 한다.

각각의 디렉토리에, --linux-.--- 라는 파일이 위치한다.

4.8 Umsdos can replace the Ms-DOS file-system.

Umsdos는 linux의 Ms-DOS 파일 시스템의 상위 호환을 목적으로 한 것을 들 수가 있다. 그렇지만 실제로는, 이 능력과 유연성이 Umsdos에 관계된 혼 란을 일으키고 있다. 여기에 이유가 있다. 새롭게 포맷하는 DOS floppy를 이와 같이 마운트해 봅자.

      mount -t umsdos /dev/fd0 /mnt

   그리고, 이렇게 한다. 

      ls / > /mnt/LONGFILENAME
      ls -l /mnt

   이같은 결과가 얻어진다. 

      -rwxr-xr-x   1 root     root          302 Apr 14 23:25 longfile
여기까지 보면, Linux의 MS-DOS 파일 시스템 이상의 것을 하고 있는 것처럼 보이지 않죠(실제아무것도 하고 있지 않기 때문이지만 …).

???

4.9 디렉토리의 확장

여기까지는 아무런 흥미꺼리가 없다. 여기에 트릭이 있다. Umsdos는, 확 장하지 않는 한, DOS의 디렉토리를 Ms-DOS 파일 시스템과 같은 방법으로 취급한다. Umsdos는 Umsdos에서 확장된 기능(긴 파일명, 소유자, 등)을 제한된 DOS 파일 시스템으로 변환하기 위해서, 서브 디렉토리마다 특별한 파일 만든다. 이 파일은 Umsdos의 사용자에게는 보이지 않지만, DOS를 부팅하면 보이는것과 같게 된다. DOS 파티션에 이 파일 (--linux.---)이 필 요이상으로 흐트러지는 것을 막기 위해서, 확장할것이지는 선택할 수 있다. 확장하지 않는다면 , Umsdos는 Ms-DOS 와 같게 행동한다.

디렉토리를 확장하면, Linux 와 Unix의 사용자에게 표면적으로는 완전하게 정상적인 조작할 수 있다. 확장된 디렉토리에 서브 디렉토리를 만들면, 자 동적으로 확장된다.

이 기능에 의해, DOS의 파티션을 DOS의 부분과 Linux의 부분으로 논리상 정리할 수 있다. 이것들의 --linux.--- 파일은 다소의 공간(보통 디렉토리에 대하여 2k)를 이용하는 것을 이해 해야한다. DOS는 보통 큰 클러스터(500 메가의 파티션이라면 16k크기)를 사용하므로, 모든 장소에 --linux.--- 를 삽입하지 않으면, 디스크를 절약할 수 있다.

4.10 어떻게 확장하는가 :/sbin/umssync

디렉토리는, /sbin/umssync를 사용해서 언제라도 확장할 수 있다. 언제나 사용가능하다. 디렉토리의 확장에서는 아래와같은 일이 행해진다.

/sbin/umssync는, 이미 --linux.--- 가 존재하는 경우는, 그것을 생성하지않고, 업 데이트만 한다. 그 중 빠져 있는 엔트리(DOS 세션에서 만들어진 파일)을 추가하는 것뿐이다. 그 DOS 디렉토리에 이제 존재하지 않게 된 파일은, --linux.--- 로부터 삭제됩니다. umssync 라는 이름은, 그것이 --linux.--- 를 원래 DOS 디렉토리의 내용과 일치시키는 곳으로부터 오고있다.

4.11 /sbin/umssync를 부팅시에 사용하기

만약 거기에 없으면, /etc/rc.d/rc.S의 끝에 /sbin/umssync를 호출하는 것은 좋은 아이디어 이다. 많은 시스템에서는, 이하의 커멘드로 충분하다.

      /sbin/umssync -r99 -c -i+ /
-c 옵션은 umssync에 디렉토리의 확장을 시키지 않는 옵션이다. 이전 에 존재하는 --linux.--- 를 업 데이트하는 것뿐이다.

이 커멘드는 DOS 세션 동안 Linux 디렉토리에 접근한 경우에 유효하다. Linux 에는 DOS에 의해 디렉토리가 변경된 것을 알아내는 효율적인 방법이 없기 때문에, 필요에 따라서 (자동적으로) umssync를 기동하는 것은 할 수 없다.

4.12 UN-promote 방법

DOS를 사용해 --linux.--- 를 삭제 하시오. 반드시 후회 할것이다.

4.13 DOS 세션사이에 만들어진 파일은 어떻게 되는가?

DOS에 의해 파일이 더해지거나 삭제된 디렉토리에서 umssync를 실행하지 않으면, 몇개의 문제에 부딪친다.


다음 이전 차례