Booting a CF or SD card from an internal card reader

Discussioni sulla compatibilità dell'Hardware con linux, Drivers, ...

Booting a CF or SD card from an internal card reader

Messaggioda Aki » 22/04/2017, 8:16

Riporto in allegato il riferimento ad una interessante discussione sulla ML debian-user (vedi ... 00578.html)

Booting a CF or SD card from an internal card reader

Subject: Booting a CF or SD card from an internal card reader

1. This HOWTO is a result of the discussion on debian-user beginning at ... 00329.html

2. Some machines which have internal card readers do not expose the
devices in them to the BIOS. When GRUB uses the BIOS it too will be
unaware of what is inserted in the card reader. Check this from the
GRUB menu by getting a prompt with the C key and typing 'ls'. On my
machine 'lsusb' gives

TEAC Corp. All-In-One Multi-Card READER CA200/B/S

and 'ls' shows two hard disk partitions only:

(hd0) (hd0,msdos5) (hd0,msdos1)

This is with a Compact Flash (CF) card inserted in the reader.

3 The only way of booting a Secure Digital (SD) or a Compact Flash
card using GRUB is to use a kernel on (hd0,msdos5) or (hd0,msdos1).
This is very fraught if the kernels on a card and a partition are
different and, furthermore, cannot really be described as booting
*from* the card.

4. A solution is to use GRUB's nativedisk command. At a prompt type
'nativedisk' followed by 'ls'. I get

(ata0) (ata0,msdos5) (ata0,msdos1) (usb0a) (usb0a,msdos1) (usb0b) (usb0c) (usb0d) (ata1)

(usb0a,msdos1) is the CF card.

nativedisk uses GRUB's USB drivers. These work directly with the
hardware and effectively GRUB will sever connection with the BIOS'
firmware drivers.

5. First install a Debian OS to an SD or CF card. The install includes
putting GRUB in the MBR of the card. It is a good idea to label the
filesystem; "CFDISK" was my choice.

6. My controlling GRUB is on (hd0,msdos1). It is the first entry in the
GRUB menu which is displayed when the machine boots. The entry was
activated to boot into the OS on (hd0,msdos1).

Edit /etc/grub.d/40_custom to have

menuentry 'Debian Stretch on CF card' {
insmod part_msdos
insmod ext2
echo "Running nativedisk command. Please wait."
search --label --set=root CFDISK
linux /vmlinuz root=LABEL=CFDISK ro
initrd /initrd.img

and do 'update-grub' *without* any of the reader's slots being

7. Reinsert a card and restart the machine to see the new entry in the
GRUB menu and boot from it.

8. This method can also be used for an OS on a USB stick. Useful when
a machine will not boot from USB.

9. A card or USB stick can be plugged in before the machine boots or
when the GRUB menu appears.


Global Moderator
Global Moderator
Messaggi: 7750
Iscritto il: 27/12/2007, 16:59

Torna a Hardware

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite