Debian preseed.cfg/automatic устанавливают установку, не обнаруживающую жесткие диски

Можно найти соответствующее/dev/sdY устройство через пересечение /sys дерево:

$ find /sys/devices | grep '/ata[0-9]\+/.*/block/s[^/]\+$' \
    | sed 's@^.\+/\(ata[0-9]\+\)/.\+/block/\(.\+\)$@\1 => /dev/\2@'

С более эффективным /sys обход (cf. lsata.sh):

$ echo /sys/class/ata_port/ata*/../../host*/target*/*/block/s* | tr ' ' '\n' \
    | awk -F/ '{printf("%s => /dev/%s\n", $5, $NF)}'

Пример произвел от 2 дисковых систем:

ata1 => /dev/sda
ata2 => /dev/sdb

Затем для того, чтобы надежно определить фактические аппаратные средства необходимо отобразить/dev/sdY на порядковый номер, например:

$ ls /dev/disk/by-id -l | grep 'ata.*sd[a-zA-Z]$'

lssci

lssci утилита может также использоваться для получения отображения:

$ lsscsi | sed 's@^\[\([^:]\+\).\+\(/dev/.\+\)$@\1,\2@' \
    | awk -F, '{ printf("ata%d => %s\n", $1+1, $2) }'

Обратите внимание, что соответствующее lsscsi перечисление запускается от 0, в то время как ata перечисление запускается от 0.

Системный журнал

Если ничто иное не работает, можно посмотреть на системный журнал/журнал для получения отображения.

/dev/sdY устройства создаются в том же порядке, как ataX идентификаторы перечисляются в kern.log при игнорировании недисковых устройств (ATAPI) и не-подключенных-каналов.

Таким образом следующая команда отображает отображение:

$ grep '^May 28 2'  /var/log/kern.log.0  | \
   grep 'ata[0-9]\+.[0-9][0-9]: ATA-' | \
   sed 's/^.*\] ata//' | \
   sort -n | sed 's/:.*//' | \
   awk ' { a="ata" $1; printf("%10s is /dev/sd%c\n", a, 96+NR); }'
ata1.00 is /dev/sda
ata3.00 is /dev/sdb
ata5.00 is /dev/sdc
ata7.00 is /dev/sdd
ata8.00 is /dev/sde
ata10.00 is /dev/sdf

(Обратите внимание, что ata4 не отображен, потому что вышеупомянутые сообщения журнала от другой системы.)

Я использую /var/log/kern.log.0 и нет /var/log/kern.log потому что сообщения загрузки уже повернуты. Я grep для May 28 2 потому что это было прошлым временем начальной загрузки, и я хочу проигнорировать предыдущие сообщения.

Проверить отображение Вас может сделать некоторые проверки через рассмотрение вывода:

$ grep '^May 28 2'  /var/log/kern.log.0  | \
grep 'ata[0-9]\+.[0-9][0-9]: ATA-'
May 28 20:43:26 hn kernel: [    1.260488] ata1.00: ATA-7: SAMSUNG SV0802N, max UDMA/100
May 28 20:43:26 hn kernel: [    1.676400] ata5.00: ATA-5: ST380021A, 3.19, max UDMA/10
[..]

И можно сравнить этот вывод с hdparm вывод, например:

$ hdparm -i /dev/sda

/dev/sda:

Model=SAMSUNG SV0802N [..]

(использование Ядра 2.6.32-31)

3
28.11.2012, 02:55
3 ответа

Проблемой является отсутствие драйверов на ядре перед семенем. Корректный способ обойти это состоит в том, чтобы присоединить внешний диск, содержащий драйверы (debian-nonfree-firmware). Затем во время установки направьте установку Debian для загрузки, драйверы от внешнего диска (может быть Карта памяти также).

0
27.01.2020, 21:32

Так как Вы используете VirtualBox, устанавливает Ваш дисковый контроллер, чтобы быть Контроллером IDE.

Я использую предварительно отобранные автоматические ISO-образы установки все время. Debian не нужно ничто дополнительное для поддержки VirtualBox.


При обращении к нему по-другому, если необходимо добавить, встроенное микропрограммное обеспечение к изображению установки просто копирует .deb пакет, содержащий встроенное микропрограммное обеспечение к корню Вашего изображения установщика (для медиа USB можно скопировать его непосредственно для медиа ISO, необходимо обновить ISO). Установщик просканирует присоединенные медиа для микропрограммных изображений или deb пакетов, содержащих микропрограммные изображения автоматически.

Снова, для VirtualBox это не необходимо.

1
27.01.2020, 21:32

Воссоздание initrd.gz работавший для меня в прошлом. Я сделал это путем следования инструкциям, отправленным в потоке на форумах Debian. Можно найти полное описание здесь: это - мой вопрос, с которым я связался в моем комментарии выше.

0
27.01.2020, 21:32

Теги

Похожие вопросы