【问题标题】:How is it possible to make a bootable usb drive , with bootsector written in nasm?如何使用 nasm 编写的引导扇区制作可引导的 USB 驱动器?
【发布时间】:2021-12-27 17:15:57
【问题描述】:

我有以下代码:

mov ah ,  0x0e

mov al , `h`

int 0x10

mov al , `1`

int 0x10

jmp $



times 510-($-$$) db 0 

dw 0xaa55

我使用这个 bat 文件用 qemu 编译和运行:

nasm -fbin boot_sect.asm -o boot_sect.iso

qemu-system-x86_64 -drive format=raw,file=boot_sect.iso

它工作正常。但后来我尝试使用 rufus 3.17 制作可启动的 USB 驱动器。 它显示:设备-> [NO LABEL](disc 1)[16 gb] 我猜它是我想要使其可启动的 USB。然后我选择了用 nasm (boot_sect.iso) 创建的 iso 文件,然后按 start 。该过程完成后,我收到以下消息:

Format operation started
Requesting disk access...
No drive letter was assigned...
Will use 'D:' as volume mountpoint
Opened \\.\PhysicalDrive1 for exclusive write access
Requesting logical volume handle...
++

Found USB 2.0 device 'Generic Flash Disk USB Device' (058F:6387)
Found VHD device 'Εικονικός δίσκος της Microsoft'
No logical drive found (unpartitioned?)
2 devices found
No volume information for drive 0x81
Disk type: Removable, Disk size: 16 GB, Sector size: 512 bytes
Cylinders: 1912, Tracks per cylinder: 255, Sectors per track: 63
Partition type: MBR, NB Partitions: 0
Disk ID: 0x00000000
Drive has an unknown Master Boot Record

我忽略这个并重新启动我的电脑。我按 f12 选择从 USB 启动。但没有任何反应,Windows 开始启动。怎么回事,笔记本电脑无法从 USB 启动?

【问题讨论】:

  • 我在 YouTube 视频中看到我必须在文件末尾填充更多的零,以便大小达到 1.4mb 才能启动。还是不行
  • 经过一些试验,我发现这实际上是我的笔记本电脑的问题,因为它正在另一台电脑上启动。由于某种原因,我拥有的笔记本电脑无法从 USB 启动。现在试图找出原因

标签: assembly usb nasm boot


【解决方案1】:

问题实际上并不是我最初认为的代码。我只需要从 bios 设置更改为 csm 模式,然后从 usb 启动。

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2016-02-15
    相关资源
    最近更新 更多