USB 대용량 저장 장치 접근하기

cppig1995의 이미지

요즘 PC에는 플로피 디스크 드라이브가 달려 나오지 않지요.
그래서 Bootdisk.Com 같은 사이트에도 USB 플래시 드라이브를 이용해 부트하는 방법이 나오는데,
DOS가 USB 플래시 드라이브 입출력을 지원하는 건 아닐 것 같습니다. (어떤 드라이버가 있을 듯...)
그런데 USB 플래시 드라이브에 담긴 DOS가 부트된 후 드라이버를 읽어들이는 데도 드라이버가 필요하지 않나요?

1) DOS 부트 이미지가 담긴 USB 플래시 드라이브로 부트한 후 DOS는 어떻게 시스템 파일(COMMAND.COM 등)을 읽어들이나요?
2) OS가 USB mass storage class device에 접근하는 방법에 대해 가르쳐 주셨으면 합니다.

이양반의 이미지

DOS의 경우 bios call 을 이용해서 데이터블럭을 읽는것으로 알고 있습니다.
드라이버를 이용해서 직접 엑세스 하는것이아니라 BIOS의 도움으로 읽는 것이기때문에
USB라고 해서 BIOS에서의 지원으로 command.com 을 읽는데 문제가 없을것으로 보입니다.

아마도 BIOS에서 USB쪽을 FDD로 인식 할수있게 되어 있는것같습니다.

잘못된 부분이 있으면 지적 부탁 드립니다.

----

Gnu is Not Unix

bushi의 이미지

CDROM 부팅에서도 BIOS 가 CD 의 특정블록을 floppy 로 에뮬레이션 해 줍니다.

BIOS 에 의해 로드된 부트로더는 BIOS call 로 커널을 읽어들이고,
커널이 로드된 후 부터는 커널 드라이버가 사용될 수 있습니다.
MS-DOS 의 커널에 해당하는 msdos.sys 등은 부트로더에 의해서 로드되고,
command.com 은 shell 입니다. 커널이 로드 된 후 커널에 의해 실행되는 첫번째 application 이죠.

command.com 을 직접 뜯어 본 적은 없습니다만,
BIOS interrupt가 아니라 MS-DOS interrupt(system call) 를 사용할 것 같네요.
커널에서 제공되는 드라이버를 사용한다는거죠.

command.com 이 실행되면서 config.sys, autoexec.bat 를 참조하므로,
추가적인 드라이버들, 예를 들자면 CD 드라이버 나 USB 드라이버, 을 로드하도록 설정한다면
쉘 상태에서 CD 나 USB 에 접근하는 게 가능합니다. 드라이브 문자가 새로 할당되겠고요.

누군가 OEM 버전으로 만들어놓은 norton ghost CD 부팅 이미지로 부팅해 본 적이 있는데,
신기하게도 SATA, USB 하드디스크까지 잘 잡아내더군요.
드라이버를 올린 것인지 어플리케이션 수준에서 구현한 것인지 알아보지는 않았습니다.
네트웍까지 지원하는 partimage rescue 를 사용하니 ghost 가 허접해보여서 CD 는 바로 폐기처분했습니다.

OTL

익명 사용자의 이미지

에~~~ 설마요. ㅋㅋ 그럴뜻한 말씀을...
답은 아닙니다 입니다. 해보셨나요?
그럼 usb를 도스 부팅 만들어 놓으시고 그대로 시디로 구워보세요.
그후 시디 부팅하면 a:\> 나오나요?
절대 아닙니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.