是否可以使用 USB 裝置啟動軟碟機驅動的作業系統

是否可以使用 USB 裝置啟動軟碟機驅動的作業系統

我對作業系統非常熱衷,並且正在學習相關課程。因此,作為一個項目,我被指派去實作一個簡單的作業系統。

他們為我提供了簡單的作業系統實現喬許

我可以遵循所有給定的說明並使用 NASM 彙編器編譯引導磁區和基本核心部分。我還添加了自己的代碼來顯示機器的附加資訊。

總結,喬許是一個設計用於從軟碟啟動的作業系統。但我沒有任何可以使用軟碟機的設備。

JOSH 設計者提供了dd if=boot.bin bs=512 count=1 of=/dev/fd0將 boot.bin 檔案放入軟碟的方法。

我需要知道是否可以在 USB 驅動器上建立虛擬軟碟部件,並且我可以從該驅動器啟動該作業系統。

由於我使用 ubuntu,如果有人能向我解釋如何在我的 USB 上創建這個虛擬軟碟以及如何將 boot.bin 和 kernel.bin 文件放入該虛擬驅動器中,我真的很感激。

據我了解,我們應該為這個 boot.bin 檔案提供某種 512 位元組的磁區。

如果有人能幫我解決這個問題,我真的很感激。

答案1

你應該調查一下PXE啟動

我並不是說您必須使用 PXE 而不是軟碟(儘管您最終可能會這樣做)。

但 PXE 引導技術使用虛擬軟碟來引導載入最終作業系統。還有各種相關工具可用於處理虛擬軟碟(填充它們,將它們儲存為檔案)以及透過線路發送虛擬軟碟以供目標電腦啟動。因此,您很可能在 PXE 世界中找到您需要的東西。

我過去使用 Tftpd32 來實現此目的。我本來打算發布一個鏈接,但 Chrome 現在警告該網站上有惡意軟體,所以要小心。我相信 Windows 現在也包含此類內容(在 Windows Server 中的 WDS 下)。

答案2

沒關係找到解決方案。

喬許是一個單任務中斷驅動的作業系統。我們從網站獲得了 512 位元組的啟動文件,該文件具有有效的啟動簽名,以及一個簡單的核心文件(實際上是作業系統)。

現在這個引導磁區只識別FAT12檔案系統,所以我們必須使用軟碟機來運作它。

我所做的就是創建一個虛擬軟盤,並將啟動文件刻錄到該磁碟的 MBR 中,並將核心檔案複製到其中,然後在虛擬機器中運行它。

正如我發現的那樣這裡我們可以使用以下命令建立軟碟映像。

~$ cd /media    // open the terminal in your home directory and head to /media

/media$ sudo mkdir floppy     // create a directory in media


// go back to home directory again


~$ mkfs.msdos -C myfloppy.img 1440      // create a floppy disk image of size 1.44 MB

~ $ sudo mount -o loop myfloppy.img /media/floppy/    // mount the image with the floppy directory.

// now open another terminal where your boot.bin file and kernel.bin file is and enter the following

/os$ lsblk    // get the name of the mounted floppy image, you can identify it from the list with a disk that has 1.5 MB size

/os$ sudo dd if=./boot.bin of=/dev/loop0    // now burn the boot file to the MBR

/os$ sudo cp kernel.bin /media/floppy/     // copy the kernel file to the disk image

之後,您可以使用虛擬機器從此軟碟映像啟動。

答案3

我有一個帶有軟碟模擬功能的舊 USB 記憶棒:您可以在上面寫入軟碟映像,該記憶棒將被檢測為 USB 軟碟機。

相關內容