Successfully tested and working! ✅
This guide provides step-by-step instructions for installing Debian 13.1.0 on the ASUS T100 tablet, which has a 32-bit UEFI firmware despite having a 64-bit processor.
Create a bootable USB drive with Debian 13.1.0 installer that works on ASUS T100 and similar 32-bit UEFI devices.
- The Challenge
- Prerequisites
- Step-by-Step Installation Guide
- Repository Files
- Hardware Details
- What We Did (Technical Journey)
- USB Drive Structure
- Troubleshooting
- Post-Installation
- Contributing
- Credits
- USB drive: 8GB minimum (16GB+ recommended)
- Working Linux system: For creating the bootable USB (Raspberry Pi, Ubuntu, Debian, etc.)
- Debian ISO:
debian-13.1.0-amd64-netinst.iso(download here) - 32-bit UEFI bootloader:
bootia32.efifrom hirotakaster/baytail-bootia32.efi - Internet connection: Required during installation (netinst downloads packages)
For a faster setup, you can use the automated script:
# Clone or download this repository
git clone https://github.com/YOUR-USERNAME/asus-t100-debian.git
cd asus-t100-debian
# Make script executable
chmod +x create-usb.sh
# Run the script (replace /dev/sdX with your USB device)
sudo ./create-usb.sh /dev/sdXThe script will automatically download the ISO and bootloader, then create the bootable USB.
Or follow the manual steps below:
Insert your USB drive and identify it (usually /dev/sda or /dev/sdb). WARNING: This will erase all data on the USB!
# Identify your USB drive (look for your USB size)
lsblk
# Unmount if mounted
sudo umount /dev/sda1 # Replace sda with your USB device
# Create GPT partition table (WARNING: ERASES ALL DATA!)
sudo parted /dev/sda --script mklabel gpt
sudo parted /dev/sda --script mkpart primary fat32 1MiB 100%
sudo parted /dev/sda --script set 1 esp on
# Format as FAT32
sudo mkfs.vfat -F32 /dev/sda1
# Create mount points
sudo mkdir -p /mnt/usb /mnt/iso# Mount USB drive
sudo mount /dev/sda1 /mnt/usb
# Download Debian netinst ISO (if not already downloaded)
cd ~/Downloads
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.1.0-amd64-netinst.iso
# Mount the ISO
sudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/iso
# Download 32-bit UEFI bootloader
wget https://github.com/hirotakaster/baytail-bootia32.efi/raw/master/bootia32.efiIMPORTANT: Copy the entire ISO contents, including the pool directory!
# Copy all contents from ISO to USB
sudo cp -r /mnt/iso/* /mnt/usb/
sudo cp -r /mnt/iso/.disk /mnt/usb/
# Verify pool directory was copied (should show ~600-625MB)
du -sh /mnt/usb/pool# Create EFI directories
sudo mkdir -p /mnt/usb/EFI/BOOT
sudo mkdir -p /mnt/usb/EFI/debian
# Copy 32-bit bootloader (CRITICAL for T100!)
sudo cp bootia32.efi /mnt/usb/EFI/BOOT/
# Copy 64-bit bootloaders from ISO (for compatibility)
sudo cp /mnt/iso/EFI/BOOT/bootx64.efi /mnt/usb/EFI/BOOT/
sudo cp /mnt/iso/EFI/BOOT/grubx64.efi /mnt/usb/EFI/BOOT/
sudo cp /mnt/iso/EFI/debian/grubx64.efi /mnt/usb/EFI/debian/# Create GRUB directories
sudo mkdir -p /mnt/usb/boot/grub/i386-efi
sudo mkdir -p /mnt/usb/boot/grub/x86_64-efi
# Extract 32-bit GRUB package from ISO
cd /tmp
cp /mnt/iso/pool/main/g/grub2/grub-efi-ia32-bin_2.12-9_amd64.deb .
ar x grub-efi-ia32-bin_2.12-9_amd64.deb
tar -xf data.tar.xz
# Copy 32-bit GRUB modules to USB
sudo cp -r usr/lib/grub/i386-efi/* /mnt/usb/boot/grub/i386-efi/
# Copy 64-bit GRUB modules from ISO
sudo cp -r /mnt/iso/boot/grub/x86_64-efi/* /mnt/usb/boot/grub/x86_64-efi/
# Copy GRUB font
sudo cp /mnt/iso/boot/grub/font.pf2 /mnt/usb/boot/grub/Create the GRUB config file:
sudo nano /mnt/usb/boot/grub/grub.cfgPaste this configuration (see grub.cfg file in this repository for the complete version):
set default=0
set timeout=5
loadfont ($root)/boot/grub/font.pf2
menuentry "Debian 13.1.0 Installer (Graphical)" {
linux /install.amd/vmlinuz vga=788 --- quiet
initrd /install.amd/gtk/initrd.gz
}
menuentry "Debian 13.1.0 Installer (Text)" {
linux /install.amd/vmlinuz vga=788 --- quiet
initrd /install.amd/initrd.gz
}
menuentry "Debian 13.1.0 Installer (Expert)" {
linux /install.amd/vmlinuz priority=low vga=788 ---
initrd /install.amd/gtk/initrd.gz
}
menuentry "Debian 13.1.0 Rescue Mode" {
linux /install.amd/vmlinuz vga=788 rescue/enable=true --- quiet
initrd /install.amd/gtk/initrd.gz
}
Save and exit (Ctrl+O, Enter, Ctrl+X).
# Sync all writes to USB
sync
# Unmount everything
sudo umount /mnt/iso
sudo umount /mnt/usb
# Safe to remove USB now- Boot into BIOS (press F2 or DEL during startup)
- Disable Secure Boot (Security → Secure Boot → Disabled)
- Set Boot Mode to UEFI (not Legacy/CSM)
- Disable Fast Boot (optional but recommended)
- Save and exit
- Insert USB drive into T100
- Power on and press ESC for boot menu
- Select your USB drive from the boot menu
- GRUB menu should appear
- Select "Debian 13.1.0 Installer (Graphical)"
Follow the Debian installer:
- Select language, location, and keyboard
- Network configuration (connect to WiFi if available)
- Set hostname and domain
- Create user account and password
- Partition disks (Guided - use entire disk recommended for beginners)
- Select software (Debian desktop environment + standard system utilities)
- Install GRUB bootloader to the internal disk
- Complete installation and reboot
The installer should complete without errors. Remove the USB when prompted and reboot.
This repository contains the following files to help you install Debian on your ASUS T100:
| File | Description |
|---|---|
README.md |
Complete installation guide (this file) |
QUICK-START.md |
Quick checklist for installation |
create-usb.sh |
Automated script to create bootable USB |
grub.cfg |
GRUB configuration file reference |
CONTRIBUTING.md |
Guide for contributing to this project |
LICENSE |
MIT License |
.gitignore |
Files to exclude from git repository |
The ASUS T100 (and T100TA) has a 32-bit UEFI firmware despite having a 64-bit Intel Atom processor. This is common in Intel Atom-based tablets from 2013-2015. Most bootable USB creation tools only install 64-bit UEFI bootloaders, which won't work on these devices.
- Target Device: ASUS T100 tablet
- USB Drive: 114.6 GB SanDisk USB 3.2 Gen1 (
/dev/sda) - Partition: Single GPT partition, FAT32, marked as EFI System Partition
- Working System: Raspberry Pi running Debian Bookworm
- Created EFI/BOOT directory on USB
- Extracted
bootx64.efiandgrubx64.efifrom Debian ISO - Copied GRUB modules and created configuration
- Result: BIOS ignored the USB and returned to setup
Key Discovery: T100 requires bootia32.efi for 32-bit UEFI
- Downloaded 32-bit UEFI bootloader from https://github.com/hirotakaster/baytail-bootia32.efi
- Extracted 32-bit GRUB modules from Debian package
grub-efi-ia32-bin_2.12-9_amd64.deb - Installed both 32-bit and 64-bit bootloaders for compatibility
- Result: USB booted successfully, GRUB menu appeared
Problem: Debian installer said "Detected media cannot be used for installation"
Cause: Original GRUB config tried to boot from ISO file using loopback. The installer couldn't access the ISO to detect installation media.
Solution: Extracted ISO contents directly to USB drive
- Copied installer files:
/install.amd/(vmlinuz, initrd.gz) - Copied metadata:
/.disk/,/dists/,/firmware/ - Updated GRUB config to boot directly from extracted files (no loopback)
- Removed the ISO file to save space
- Result: Installer detected media successfully, installation began
Problem: Installer showed "problem reading data" when trying to load installer components
Cause: The pool directory (containing installer packages) was not copied from the ISO
Solution: Copied the /pool/ directory from ISO to USB (625 MB of .deb and .udeb packages)
- Result: Installer can now load components successfully
Status: Debian 13.1.0 successfully installed and running on ASUS T100!
The installer successfully:
- ✅ Booted using 32-bit UEFI
- ✅ Loaded GRUB menu
- ✅ Started Debian installer
- ✅ Detected installation media
- ✅ Loaded installer components
- ✅ Completed full system installation
- ✅ Post-install: Node.js, npm, and Claude Code installed successfully!
/mnt/usb/
├── EFI/
│ ├── BOOT/
│ │ ├── bootia32.efi (558 KB - 32-bit UEFI for T100)
│ │ ├── bootx64.efi (2.6 MB - 64-bit UEFI)
│ │ └── grubx64.efi (2.6 MB - 64-bit GRUB)
│ └── debian/
│ └── grubx64.efi
├── boot/
│ └── grub/
│ ├── grub.cfg (Boot menu configuration)
│ ├── font.pf2 (Display font)
│ ├── i386-efi/ (32-bit GRUB modules)
│ └── x86_64-efi/ (64-bit GRUB modules)
├── install.amd/
│ ├── vmlinuz (Linux kernel)
│ ├── initrd.gz (Initial ramdisk)
│ ├── gtk/ (Graphical installer files)
│ └── xen/
├── pool/ (Debian packages - .deb and .udeb)
│ ├── main/ (Main Debian packages)
│ ├── contrib/ (Contributed packages)
│ └── non-free-firmware/ (Non-free firmware)
├── .disk/ (Installer metadata)
├── dists/ (Package metadata)
└── firmware/ (Hardware firmware files)
Total size: ~1 GB (includes base installer packages, netinst downloads additional packages from internet)
Location: /mnt/usb/boot/grub/grub.cfg
Boot menu options:
- Debian 13.1.0 Installer (Graphical)
- Debian 13.1.0 Installer (Text)
- Debian 13.1.0 Installer (Expert)
- Debian 13.1.0 Rescue Mode
- Plug in USB drive
- Power on and press ESC for boot menu
- Select USB drive from boot menu
- UEFI firmware loads
EFI/BOOT/bootia32.efi - GRUB loads and displays menu
- Select installer option
- Linux kernel and initrd load
- Debian installer starts
Intel released Bay Trail and Cherry Trail Atom processors (2013-2015) with 64-bit CPUs but paired them with 32-bit UEFI firmware to save costs. Affected devices include:
- ASUS T100, T100TA, T100HA
- ASUS T200
- Many budget Windows tablets from that era
This is a netinst (network install) image. The USB contains:
- Bootloader and installer
- Minimal base packages
- Network drivers and firmware
During installation, most packages are downloaded from Debian mirrors. Internet connection required.
- Secure Boot: DISABLED (bootloader is unsigned)
- Boot Mode: UEFI (not Legacy/CSM)
- Fast Boot: DISABLED (optional, but recommended)
Source: debian-13.1.0-amd64-netinst.iso
Extracted packages:
/mnt/iso/pool/main/g/grub2/grub-efi-ia32-bin_2.12-9_amd64.deb/mnt/iso/pool/main/g/grub2/grub-efi-ia32_2.12-9_amd64.deb
External resources:
- 32-bit bootloader: https://github.com/hirotakaster/baytail-bootia32.efi
sudo mount /dev/sda1 /mnt/usbsudo umount /mnt/usbsudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/isoar x package.deb
tar -xf data.tar.xz- Check UEFI mode is enabled (not Legacy)
- Disable Secure Boot
- Try different USB ports
- Missing 32-bit UEFI bootloader (
bootia32.efi) - Check
/EFI/BOOT/hasbootia32.efi
- ISO loopback method doesn't work with Debian installer
- Extract ISO contents directly to USB
- Ensure
/.disk/directory exists
- Missing
/pool/directory containing installer packages - Mount ISO:
sudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/iso - Mount USB:
sudo mount /dev/sda1 /mnt/usb - Copy pool:
sudo cp -av /mnt/iso/pool /mnt/usb/ - Sync and unmount:
sync && sudo umount /mnt/iso && sudo umount /mnt/usb
- Check internet connection (netinst requires network)
- Verify USB isn't corrupted:
sudo fsck.vfat /dev/sda1 - Check T100 has sufficient internal storage for installation
After successfully installing Debian on your ASUS T100, you can install additional software:
# Update package list
sudo apt update
# Install Node.js and npm
sudo apt install nodejs npm
# Verify installation
node --version
npm --version# Install Claude Code globally
npm install -g @anthropic-ai/claude-code
# Run Claude Code
claude-code# Install useful utilities
sudo apt install curl wget git vim
# Install browser
sudo apt install firefox-esr
# Install text editor
sudo apt install gedit
# For touchscreen support (if not working)
sudo apt install xserver-xorg-input-evdev
# For WiFi (if not working)
sudo apt install firmware-linux firmware-misc-nonfree- WiFi: May require additional firmware. Check
dmesg | grep firmwarefor missing firmware files. - Touchscreen: Usually works out of the box with kernel 6.x+
- Sound: ALSA should detect the sound card automatically
- Bluetooth: May require additional configuration
- Screen rotation: Use
xrandrto rotate display for tablet mode
This guide has been successfully tested on:
- ✅ ASUS T100 - Debian 13.1.0 (Trixie)
This guide should also work on:
- ASUS T100TA
- ASUS T100HA
- ASUS T200
- Other Bay Trail/Cherry Trail tablets with 32-bit UEFI
If you've successfully used this guide on another device, please open an issue or PR to add it to the list!
We welcome contributions! See CONTRIBUTING.md for ways you can help:
- Report your success on other devices
- Improve documentation
- Share hardware fixes
- Report issues
- Debian Project: https://www.debian.org
- 32-bit UEFI bootloader: https://github.com/hirotakaster/baytail-bootia32.efi
- Created with assistance from Claude Code