웹사이트 검색

플로피 디스크와 21세기 Linux


이 페이지에서

  1. 역사
  2. 곤경
  3. 솔루션
  4. 진행률 표시기 추가\n
  5. 더 쉽게 사용하기\n
  6. 오류 처리
  7. 이미지 파일 사용
  8. 결론

헤드라인은 플로피 드라이브에 대한 커널 지원의 종말을 선언합니다. 디스켓 모음으로 수행할 작업과 수행 방법은 다음과 같습니다.

필립 L. 길머, 2019년 8월 11일

최근 헤드라인은 Linux 커널에서 유서 깊은 플로피 디스크 드라이브에 대한 지원이 임박했음을 선포합니다. 속이 뒤틀리고 심장이 한두 번 두근거렸다. 나는 이 사업에 몇 년 동안 종사해 왔으며 플로피 디스크 컬렉션은 8인치까지 거슬러 올라갑니다. \다시는 안 돼! 나는 생각했다.

다행스럽게도 추가 조사 결과 헤드라인이 상황을 다소 과장한 것으로 나타났습니다. 모든 플로피 지원이 사라지는 것이 아니라 전용 플로피 컨트롤러에 연결된 드라이브만 지원됩니다. 최신 컴퓨터에 디스켓 읽기/쓰기 기능을 제공하기 위해 구입한 USB 드라이브는 다른 지원 메커니즘을 사용하며 당분간은 계속 지원될 것입니다. 어쨌든 지금이 이 모든 디스켓으로 무언가를 할 수 있는 좋은 시간인 것 같았습니다.

역사

첫 번째 플로피 디스크는 직경이 8인치였으며 1960년대 후반에 IBM에서 메인프레임 구성 요소로 도입했습니다. IBM은 그것들을 "유형 1 디스켓\으로 지정했지만 "플로피 디스크\라는 용어는 매우 빠르게 받아들여졌습니다. 최신 양면 버전은 약 1.2MB의 데이터를 저장할 수 있었습니다.

5-1/4인치 드라이브가 곧 이어졌습니다. 저렴하지만 적은 양의 데이터만 보유할 수 있습니다. 처음에는 약 72킬로바이트의 데이터만 보유했지만 경쟁으로 인해 용량이 약 630킬로바이트로 증가했습니다.

최초의 3-1/2인치 플로피 드라이브는 당시로서는 경이로운 제품이었습니다. "플로피 디스크\는 더 이상 플로피가 아닙니다. 초기 Apple Macintosh 컴퓨터는 400KB 크기를 사용했습니다. IBM은 1986년 IBM PC 컨버터블 라인에 폼 팩터를 도입하여 "엄청난\ 720KB를 저장할 수 있는 기능을 제공했습니다. 이후 IBM PC의 PS/2 시리즈는 데이터 용량을 1.44메가바이트, 심지어 2.88메가바이트로 늘렸습니다. 그러나 시간은 흘러갑니다. Iomegas SuperDisk LS-120 및 LS-240 드라이브와 같은 혁신 제품은 최대 750MB의 용량을 제공했습니다.

CD 및 DVD 기술의 발전은 플로피의 종말을 의미했습니다. CD는 처음에는 읽기 전용 미디어였지만 쓰기 가능한 장치가 곧 사용 가능해지면서 저장 용량이 650MB에서 8GB 용량의 듀얼 레이어 DVD를 통해 기가바이트 범위로 확장되었습니다.

썸 드라이브는 요즘 우리 대부분이 선택하는 무기입니다. 작고 저렴하며 편리한 이 제품은 이제 테라바이트에 가까운 스토리지 용량을 제공합니다.

엄청난! 나는 다른 사람들처럼 새로운 기술을 사용합니다. 하지만 제가 가지고 있는 이 모든 플로피로 무엇을 할까요?

곤경

확실히 이러한 오래된 디스켓의 대부분은 이런저런 종류의 데이터 파일을 포함하고 있으며 파일을 내 Linux 시스템의 디렉토리에 복사할 수 있습니다. Linux Mint KDE를 사용하기 때문에 수동으로 디스켓을 마운트할 필요조차 없습니다. Mint는 디스켓을 넣으면 그렇게 하겠다고 제안할 것입니다. 내 파일 관리자를 열고 파일을 새 위치로 끌어다 놓기만 하면 됩니다.

다른 Linux 배포판은 약간 다르게 할 수 있지만 대부분은 플로피 드라이브를 쉽게 마운트할 수 있는 방법을 제공합니다. 디스켓 항목을 클릭하면 옵션이 표시됩니다. 디스켓에 있는 파일을 보려면 "파일 관리자로 열기\를 선택합니다.

파일을 드래그 앤 드롭하여 선택한 디렉토리에 복사합니다.

다른 디스켓으로 무엇을 할 수 있는지는 그렇게 간단하지 않았습니다. 어떤 용도로든 사용하려면 디스켓으로 유용해야 했습니다. DOS와 Windows에서 디스켓 이미지를 만들었습니다. 그러나 오래 전 일이었습니다. 그리고 내가 사용한 프로그램은 16비트 DOS 프로그램이며 Windows XP 이후의 어떤 버전의 Windows에서도 실행되지 않습니다.

다행히 이 작업을 수행하는 과정은 간단합니다. 이를 위해 타사 벤더 프로그램이 필요하지 않습니다. Linux에는 작업을 수행하는 데 필요한 모든 것이 포함되어 있습니다.

해결책

실제로 이미지를 생성하기 위해 dd라는 프로그램을 사용할 것입니다.

가장 먼저 해야 할 일은 플로피 드라이브가 장착된 위치를 찾는 것입니다.

USB 드라이브를 시스템에 연결하고 몇 초간 기다린 후 다음 명령을 실행합니다.

dmesg | tail

출력은 다음과 같습니다.

여기서 마지막 줄은 플로피가 /dev/sdb로 지정되었음을 나타냅니다.

전용 컨트롤러에 연결된 플로피 드라이브를 사용하는 경우 장치는 /dev/fd0 또는 /dev/floppy와 같이 표시됩니다. 여기에 플로피를 넣고 df 명령을 사용하여 사용된 장치를 확인합니다.

이 예에서 할당된 장치는 /dev/fd0입니다. 이것이 귀하의 구성인 경우 아래 예에서 /dev/sdb가 사용되는 곳마다 이 장치를 사용하십시오.

이미지화할 플로피를 삽입하고 이미지가 저장될 디렉토리로 전환한 후 다음 명령을 실행하십시오.

dd if=/dev/sdb of=test.img

다음과 같은 것을 보게 될 것입니다.

가장 간단한 형태로 dd를 사용하는 데는 몇 가지 문제가 있습니다.

첫째, 디스켓의 사용량에 관계없이 생성된 이미지는 디스켓의 크기(이 경우 1.44MB)를 반영합니다. gzip 명령을 사용하여 파일을 압축할 수 있습니다.

gzip test.img

결과는 다음과 같습니다.

test.img 파일이 압축되고 거의 절반으로 더 작은 test.img.gz로 대체됩니다.

둘째, dd 프로그램은 우리가 원하는 대로 오류를 처리하지 않습니다. 기본적으로 오류(예: 불량 섹터)가 발생하면 문제를 보고하고 종료됩니다.

다행히도 dd에는 일부 오류를 처리할 수 있는 수단이 있습니다.

오류를 무시하고 계속 진행하도록 매개변수를 추가합니다. 또한 잘린 데이터가 없도록 읽을 수 없는 섹션을 0으로 채워야 합니다. 이제 레코드 수가 디스크 용량(킬로바이트 단위)과 같도록 복사본의 블록 크기를 512바이트에서 1024바이트로 변경하겠습니다. 이제 사본은 다음과 같습니다.

이전과 마찬가지로 gzip 유틸리티를 사용하여 파일을 압축할 수 있습니다.

이 작업을 한 단계로 수행하는 것이 정말 좋을 것입니다. 파이프("|”) 연산자를 사용하여 이를 수행할 수 있습니다. 다음 명령을 실행합니다.

sudo dd if=/dev/sdb bs=1024 conv=sync,noerror | gzip > test.img.gz

결과는 다음과 같습니다.

파일 확장자 .gz로 끝나는 이름을 제공하므로 gzip 프로그램은 파일 이름의 나머지 부분을 내부 파일 "test.img\의 이름으로 사용합니다. \. 이 명명 규칙을 적극 권장합니다. 이 명명 규칙이 없으면 gzipgunzip이 혼동되어 결과를 예측할 수 없습니다. 따라서 +".img"+를 사용하십시오. ".gz". 이름에 공백이나 기타 특수 문자가 포함된 경우 전체 이름을 따옴표로 묶습니다.

아카이버에서 파일을 열면 실제 파일 이름을 볼 수 있습니다.

진행률 표시기 추가

우리의 명령은 작동하지만 실제로 무슨 일이 일어나고 있는지 알 수 없습니다. 일이 제대로 진행되고 있는지 확인할 수 있다면 좋을 것입니다.

작업을 수행할 pv라는 멋지고 작은 유틸리티가 있습니다. 배포 저장소에서 설치하십시오. Linux Mint는 apt 패키지 관리자를 사용하므로 다음 명령을 사용하여 설치합니다.

sudo apt install pv

pv를 사용하면 이제 진행 표시기가 있습니다. 이제 이미지 생성 프로세스는 다음과 같습니다.

pv -tpreb /dev/sdb | dd bs=1024 conv=sync,noerror | gzip > test.img.gz

마찬가지로 디스켓 복원 프로세스는 다음과 같습니다.

sudo pv -tpreb test.img.gz | gunzip -c | dd of=/dev/sdb

사용하기 쉽게 만들기

이러한 명령을 더 쉽게 사용할 수 있도록 두 개의 bash 스크립트를 만들었습니다. 디스켓 이미지를 만들려면 imgcreate.sh를 사용하십시오.

#! /bin/sh
#!
#! imgcreate.sh - Shell to create diskette image file from floppy diskette
#! Author - Philip L. Gilmer, 11-Aug-2019

#!pv -tpreb /dev/sdb | dd bs=1024 conv=sync,noerror,excl | gzip > "$1"

exit 0

이름과 압축 파일 이름을 사용하여 호출합니다.

플로피를 재생성하려면 imgrestore.sh를 사용하십시오.

#! /bin/sh
#!
#! imgcreate.sh - Shell to create diskette image file from floppy diskette
#! Author - Philip L. Gilmer, 11-Aug-2019
#!

pv -tpreb /dev/sdb | dd bs=1024 conv=sync,noerror,excl | gzip > "$1"

exit 0

플로피 드라이브가 /dev/sdb가 아닌 경우 장치 이름을 변경해야 합니다.

오류 처리

좋아, 우리 디스켓을 이미징하는 일로 바빴고 다음과 같은 일이 발생했습니다.

720개의 레코드를 읽은 것으로 표시되어야 합니다. 이런! 104? 전혀 예상치 못한 것은 아닙니다. 이 디스켓 중 일부는 30년 된 것입니다. 그래서 지금 무엇? fsck 명령을 사용해 보았지만 그다지 좋은 결과를 얻지는 못했습니다. 다행히도 dosfsck 명령이 도움이 될 수 있습니다. 이 명령은 저장소 패키지 dosfstools의 일부입니다. 시스템에 아직 설치되지 않은 경우 패키지를 설치합니다. Linux Mint와 같은 Debian 기반 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt install dosfstools

취향이 다를 수 있습니다.

다음과 같이 명령을 내립니다.

sudo dosfsck -w -r -l -a -v -t /dev/sdb

입력된 대로 dosfsck는 처리되는 파일의 이름을 자동으로 나열하는 디스크를 복구하려고 시도하고 읽을 수 없는 클러스터를 불량으로 표시하고 변경 사항을 디스크에 즉시 기록합니다. 추가 정보는 매뉴얼 페이지를 확인하십시오. 현재 디스켓의 경우 다음 출력을 얻습니다.

이 디스켓은 실제로 사용할 수 없습니다. 너무 많은 파일이 손상되었으며 읽을 수 없는 클러스터가 포함되어 있습니다. 영향을 받는 파일은 다른 소스에서 복구해야 합니다. 하지만 읽을 수 없는 클러스터는 파일의 할당된 클러스터 외부에 있는 경우가 많습니다. 그런 다음 복구된 디스크의 이미지를 만들 수 있습니다. dosfsck를 다시 실행하면 디스켓을 최대한 정리했음을 알 수 있습니다.

이제 디스켓을 다시 이미지화하려고 시도합니다.

전체 디스크를 이미지화할 수 있습니다. 잘못된 클러스터가 있는 파일은 사용할 수 없습니다.

이미지 파일 사용

이미지 파일을 사용하려면 먼저 압축을 풀어야 합니다.

파일을 검사하려면 루프백 장치에 마운트하십시오.

sudo mount -o loop -t msdos ./test.img /mnt

마운트 지점 /mnt을 검색하면 파일을 볼 수 있습니다.

.img 파일은 VirtualBox VM의 게스트 컴퓨터에 정의된 가상 드라이브에서 가상 플로피 디스크로 사용될 수도 있습니다. 이미지 파일은 호스트 하드 드라이브에 있어야 합니다.

강조 표시된 항목을 선택하고 찾습니다.

결론

최신 기술의 도입으로 인해 수년 동안 디스켓의 유용성이 떨어졌을 수 있습니다. 그럼에도 불구하고 오래된 프로그램과 시스템을 실행하는 가상 머신을 다룰 때는 대체할 수 없습니다. 21세기 Linux 배포판에는 여전히 이전 기술을 지원하는 많은 도구가 포함되어 있지만 이 기술이 얼마나 오랫동안 계속 지원될지는 누구도 장담할 수 없습니다.

그러니 가능한 한 빨리 그 디스켓 이미지를 가져오세요. 나는 여전히 그 8인치 플로피로 뭔가를 했으면 좋았을 텐데!