загрузка ОС с SD-карты

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 02 окт 2020, 20:28

Загрузка ОС с SD-карты - интересная тема, потому что SD-карты заметно дешевле флешки.
Но придумать я могу только загрузку с SD-карты внутри USB-адаптера (копеечной стоимости)...
Беру для экспериментов совершенно свежую карту, 10 класса:
IMG_20201002_163250_2.jpg
IMG_20201002_163250_2.jpg (53.81 КБ) 2037 просмотров
Вставляю в адаптер:
IMG_20201002_163612_2.jpg
IMG_20201002_163612_2.jpg (55 КБ) 2037 просмотров
И делаю из этого устройства мультизагрузочную флешку с помощью Ventoy ... точно так же, как если бы это была USB-флешка (там в теме по ссылке всё очень подробно расписано).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 02 окт 2020, 20:33

Olej писал(а):
02 окт 2020, 20:28
делаю из этого устройства мультизагрузочную флешку
Загрузка из этого устройства нетбука:
Изображение
Но после выбора позиции меню загрузка не идёт с карты, а идёт с ранее установленного SSD:

Код: Выделить всё

olej@nvidia:~$ ssh root@192.168.1.1
ssh: connect to host 192.168.1.1 port 22: Connection refused
Возникает ошибка загрузки с SD, и загрузка перебрасывается на другой носитель.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 04 окт 2020, 19:01

Olej писал(а):
02 окт 2020, 20:33
Но после выбора позиции меню загрузка не идёт с карты, а идёт с ранее установленного SSD:
Я уже принимал участие в обсуждении подобной ситуации на стороннем форуме, но только относительно не мультизагрузочной карты Ventoy, а обычной, элементарной карты, записанной из ISO, например, утилитой dd.
До чего они там договорились я тогда (2016) не дослушал :lol: ... но наговорили на 12 страниц форума...

Но, по логике вещей, поскольку все одноплатные ARM (Rapsberry Pi, Orange Pi, ...) в Linux грузятся исключительно из SD, то относительно x86 здесь есть какая-то подстава... :-(

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 04 окт 2020, 19:37

Olej писал(а):
04 окт 2020, 19:01
относительно x86 здесь есть какая-то подстава...
Как установить Ubuntu 16.04 с SD-карты?
Несколько компьютеров могут загрузиться со встроенного устройства чтения карт, но большинство компьютеров не могут этого сделать. Многие компьютеры могут загружаться с SD-карты в устройство чтения карт USB. Некоторые считыватели карт могут загружаться, а некоторые устройства чтения карт не могут загружаться. И некоторые считыватели карт могут загружать только некоторые компьютеры, а другие читатели могут загружать только некоторые другие компьютеры. Скорее всего, с USB 2 лучше, чем с USB 3. Это джунгли.
Это джунгли... :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 04 окт 2020, 19:56

По поводу разновидностей SD-карт - Как выбрать карту памяти. Маркировки SD и microSD карт.
- SD - от 128 МБ до 2 ГБ;
- SDHC - от 4 ГБ до 32 ГБ;
- SDXC - от 64 ГБ до 2 ТБ.
Изображение
Class 2, 4, 6, 10 Первый показатель скорости это класс карты. Он обозначается буквой "С" с номером класса рядом. Тут всё просто, цифра в названии и означает минимальную скорость записи карты памяти то есть: - Class 2 - 2 МБ/с; - Class 4 - 4 МБ/с; - Class 6 - 6 МБ/с; - Class 10 - 10 МБ/с.
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 05 окт 2020, 17:59

Olej писал(а):
02 окт 2020, 20:33
загрузка не идёт с карты
Делаю более строгую (традиционную) проверку:

1. Образ - мини Ubuntu Focal (20.04), для сетевой установки...
Берём здесь - http://archive.ubuntu.com/ubuntu/dists/ ... s/netboot/

Код: Выделить всё

[   ]	boot.img.gz	2020-04-21 14:43	59M
[   ]	ldlinux.c32	2020-04-21 14:43	118K
[   ]	mini.iso	2020-04-21 14:43	74M
[   ]	netboot.tar.gz	2020-04-21 14:43	58M
[   ]	pxelinux.0	2020-04-21 14:43	42K
[DIR]	pxelinux.cfg/	2020-04-21 14:43	-
[DIR]	ubuntu-installer/	2020-04-21 14:43	-
[DIR]	xen/	2020-04-21 14:43	-
Вот этот:

Код: Выделить всё

olej@nvidia:~/Загрузки/ISO$ ls -l ubuntu-focal-mini.iso 
-rw-rw-r-- 1 olej olej 77594624 окт  5 16:25 ubuntu-focal-mini.iso
Всего 77 Mb ...

2. SD-карту нашёл, из самых стареньких, 2Gb:

Код: Выделить всё

olej@nvidia:~$ sudo fdisk -l /dev/sdc
Диск /dev/sdc: 1,88 GiB, 1998585856 байт, 3903488 секторов
Disk model: Mass-Storage
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00000000
Она даже не разбита на разделы:

Код: Выделить всё

olej@nvidia:~$ mount | grep /dev/sdc
/dev/sdc on /media/olej/FCAB-ACC6 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
По имени /dev/sd* - прекрасно видно, что это SD-карта в USB переходнике...

3. Накатываю образ самым традиционным способом:

Код: Выделить всё

olej@nvidia:~/Загрузки/ISO$ sudo dd if=ubuntu-focal-mini.iso of=/dev/sdc bs=1M oflag=sync
74+0 записей получено
74+0 записей отправлено
77594624 байт (78 MB, 74 MiB) скопирован, 12,1159 s, 6,4 MB/s
Карта переразбивается:

Код: Выделить всё

olej@nvidia:~$ sudo fdisk -l /dev/sdc
Диск /dev/sdc: 1,88 GiB, 1998585856 байт, 3903488 секторов
Disk model: Mass-Storage    
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x35d67138

Устр-во    Загрузочный начало  Конец Секторы Размер Идентификатор Тип
/dev/sdc1  *                0 139263  139264    68M            17 Скрытый HPFS/NTFS
/dev/sdc2              139264 151551   12288     6M             1 FAT12
4. Теперь - перенести на ноутбук и попробовать его включить...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 05 окт 2020, 18:42

Olej писал(а):
05 окт 2020, 17:59
4. Теперь - перенести на ноутбук и попробовать его включить...
Вот на внешнем мониторе раздолбанного нетбука, используемого в качестве роутре под OpenWRT (если на таком что-то стартонёт - то везде стартонёт) - сетевая загрузка Ubuntu 20.4:
IMG_20201005_173400.jpg
IMG_20201005_173400.jpg (90.35 КБ) 2021 просмотр
А вот та же самая, "традиционная" однозагрузочая SD - на "боевом" ноутбуке DELL:
IMG_20201005_174820.jpg
IMG_20201005_174820.jpg (77.45 КБ) 2021 просмотр

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: загрузка ОС с SD-карты

Непрочитанное сообщение Olej » 05 окт 2020, 18:47

Olej писал(а):
05 окт 2020, 18:42
А вот та же самая, "традиционная" однозагрузочая SD - на "боевом" ноутбуке DELL:
И, совершенно ожидаемо, когда я вынимаю SD-карту из USB-адаптера, и вставляю в считыватель того же ноутбука, то никаких попыток загрузки не происходит...
Вот эта же карточка здесь:

Код: Выделить всё

[olej@DELL ~]$ ls /dev/mm*
/dev/mmcblk0  /dev/mmcblk0p1  /dev/mmcblk0p2

[olej@DELL ~]$ sudo fdisk -l /dev/mmcblk0
[sudo] пароль для olej: 
Диск /dev/mmcblk0: 1,88 GiB, 1998585856 байт, 3903488 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x35d67138

Устр-во        Загрузочный начало  Конец Секторы Размер Идентификатор Тип
/dev/mmcblk0p1 *                0 139263  139264    68M            17 Скрытый HPFS/NTFS
/dev/mmcblk0p2             139264 151551   12288     6M             1 FAT12
Теперь она не /dev/sd*, а /dev/mmcblk* ... и поддерживается совершенно другими модулями ядра для блочных устройств:

Код: Выделить всё

[olej@DELL ~]$ lsmod | grep mmc
mmc_block              53248  3
mmc_core              184320  4 sdhci,cqhci,mmc_block,sdhci_pci
P.S. Возможно (?), загрузка с такой SD стала бы возможной, если бы эти модули ядра вкомпилировать монолитно в начальный загружаемый образ:

Код: Выделить всё

[olej@DELL ~]$ ls /boot/initramfs-`uname -r`.img
/boot/initramfs-5.7.15-200.fc32.x86_64.img
А иначе это выглядит сейчас так:

Код: Выделить всё

[olej@DELL boot]$ cat config-`uname -r` | grep MMC
CONFIG_PCI_MMCONFIG=y
CONFIG_MMCONF_FAM10H=y
# Supported MMC/SDIO adapters
CONFIG_MMC=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_TEST is not set
# MMC/SD/SDIO Host Controller Drivers
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_ACPI=m
CONFIG_MMC_SDHCI_PLTFM=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_WBSD=m
CONFIG_MMC_ALCOR=m
CONFIG_MMC_TIFM_SD=m
# CONFIG_MMC_SPI is not set
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_USHC=m
# CONFIG_MMC_USDHI6ROL0 is not set
CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_CQHCI=m
CONFIG_MMC_HSQ=m
CONFIG_MMC_TOSHIBA_PCI=m
# CONFIG_MMC_MTK is not set
CONFIG_MMC_SDHCI_XENON=m
# CONFIG_MMC35240 is not set
CONFIG_PHY_INTEL_EMMC=m

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей