Сайт | Скачать | Видео | Wiki

Автор Тема: [Решено rootdelay=5]Arch-initrd не грузится с флэшки  (Прочитано 5975 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Код изначально не мой.
Напиши свой, делов то
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Пока некогда
Если напишите мне хук для арча с modules optional load= noload= на базе своих наработок - было бы интересно

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: [Решено rootdelay=5]Arch-initrd не грузится с флэшки
« Ответ #32 : 12 Январь 2019, 10:16:37 »
Если у них флешка чуть протупит, то они узнают какой у них инитрд. А с уирдом не узнают. Так как такого рода проблемы уирд решает сам, а не заставляет пользователя лазить по форуму и вики и искать почему же у него PRA не загружается. А оказывается каждый юзер под свою флешку должен свой rootdelay подбирать ;)
А как в юирд это реализовано? Думаю мне проще будет передрать. Идеально - отдельным хуком
Странно , почему в арче для этой проблемы только такое решение...

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: [Решено rootdelay=5]Arch-initrd не грузится с флэшки
« Ответ #33 : 12 Январь 2019, 10:29:11 »
Смотря в каком месте тупит. В уирд есть проверка в начале уирд-инит на появление файлов устройств и подключение каждого источника делается с нескольких попыток с секундным интервалом.

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: [Решено rootdelay=5]Arch-initrd не грузится с флэшки
« Ответ #34 : 12 Январь 2019, 10:40:06 »
Код не мой https://sources.archlinux.org/other/mkinitcpio/
Код
poll_device() {
    local device=$1 seconds=${2//[!0-9]}

    [ "${seconds:-x}" = x ] && seconds=10
    deciseconds=$(( seconds * 10 ))
 
    # tenths of a second
    sleepinterval=1

    [ -b "$device" ] && return 0

    if [ "$udevd_running" -eq 1 ]; then
        msg "Waiting $seconds seconds for device $device ..." >&2
        while [ ! -b "$device" -a "$deciseconds" -gt 0 ]; do
            if [ "$sleepinterval" -ge 10 ]; then
                sleep 1
                deciseconds=$(( deciseconds - 10 ))
            else
                sleep .$sleepinterval
                deciseconds=$(( deciseconds - sleepinterval ))
                sleepinterval=$(( sleepinterval * 2 ))
            fi
        done
    fi

    [ -b "$device" ]
}
$2 - здесь это наш rootdelay= , который помогает

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: [Решено rootdelay=5]Arch-initrd не грузится с флэшки
« Ответ #35 : 12 Январь 2019, 11:01:04 »
#Waits partitions initialization. It need for  cardreaders with some empty slots
while [ $(cat /proc/partitions | tail -n1 | awk '{print $1}') -eq 1 ]; do
   sleep 0.3
done

Это проверка на инициализацию.

А цикл на подключение источнико не смысла показывать.  Типа.
until mount  bla bla ; do
sleep 1
done
ну и выход из цикла через несколько попыток, чтоб не вечный был.