
The Raspberry Pi 3 Model B (RPi 3B) is a popular platform for (Do-It-Yourself) servers and Linux deployments such as Debian.
However, one common problem appears when you try to boot the operating system from an external USB drive while a modern USB Wi-Fi adapter - for example, an AX1800 - is connected at the same time.
In such case, the AX1800 USB Wi-Fi adapters starts in Driver CD-ROM mode - identified as 0bda:1a2b where the adapter emulates a small USB disk.
When it happens, the bootloader mistakenly tries to boot from the adapter instead of the real USB drive, causing the startup process to hang or fail completely.
Solution
The Raspberry Pi firmware follows a fixed boot priority: SD Card → USB Boot. By placing a minimal boot partition on a small SD card, we can force the firmware to stop scanning the USB bus early.
The Pi will then load the kernel and boot files from the SD card, but continue loading the root filesystem from your original USB drive. This simple trick ensures a stable and reliable boot, even with the USB Wi-Fi adapter permanently attached.
Prerequisites
You will need:
-
A Raspberry Pi 3 Model B (or a similar model that supports SD → USB boot)
- Your existing USB boot drive with Debian installed
-
The AX1800 USB Wi-Fi adapter connected
-
A small MicroSD card (8 GB or less is fine)
-
A computer to copy files between drives
Step 1: Prepare the Minimal Boot SD Card
The goal is to create a minimal but functional boot environment on the SD card using the files from your existing USB drive.
-
Format the MicroSD card as FAT32 (vfat).
-
Mount the USB drive and locate its two main partitions:
-
FAT32 boot partition (e.g., /media/user/RASPIFIRM)
-
EXT4 root partition (e.g., /media/user/RASPIROOT)
-
-
Copy all essential boot files to the new SD card:
-
- From the FAT32 partition (RASPIFIRM): everything - bootcode.bin, start*.elf, fixup*.dat, config.txt, cmdline.txt, and all kernel files (vmlinuz*, initrd*) (Picture 1).

Figure 1 - FAT32 Partition RASPIFIRM
-
-
From RASPIROOT/boot/ (on the EXT4 partition) everything:
-
Figure 2 - EXT4 Partition RASPIFIRM
Step 2: Verify the Root Filesystem Location (cmdline.txt)
The file cmdline.txt on the SD card tells the kernel where to find the root filesystem.
-
Open cmdline.txton the SD card.
-
Find the parameter beginning with root= it should already point to the correct partition of your USB drive.
Example: -
Normally, no change is needed since the file was copied from the working USB stick.
-
Save and close the file.
Step 3: Final Assembly and Boot Test
With the SD card in place, your Raspberry Pi will now ignore the Wi-Fi adapter’s fake CD-ROM mode and boot correctly.
-
Insert the SD card into the Pi.
-
Connect your USB boot drive (Debian).
-
Plug in the AX1800 Wi-Fi adapter.
-
Power on the Raspberry Pi.
Expected Result
The Raspberry Pi bootloader first reads from the SD card, loads the kernel, and then continues booting the main OS from the USB drive. The boot process now completes normally, and your AX1800 adapter remains fully available for Wi-Fi configuration.
From this point on, your RPi 3B will boot reliably every time, even with all modern USB devices attached.