Внутренний жесткий диск не распознается во время загрузки, но распознается после приостановки / пробуждения

Я попытался установить Ubuntu на ноутбук Acer Aspire 3, но мой жесткий диск (WDC WD10SPZX-21Z10T0) не был распознан до тех пор, пока не приостановил ОС и не проснулся. Это dmesg | grep ata1 вывод перед приостановкой:

[    0.604968] ata1: SATA max UDMA/133 abar m2048@0x4fb13000 port 0x4fb13100 irq 125
[    2.818041] ata1: SATA link down (SStatus 1 SControl 300)

и после

[  123.660687] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[  123.661423] ata1.00: ATA-10: WDC WD10SPZX-21Z10T0, 02.01A02, max UDMA/133
[  123.661425] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[  123.662151] ata1.00: configured for UDMA/133

Конечно, я могу установить Ubuntu после пробуждения, но он не работает (ОС не может смонтировать раздел / во время загрузки, потому что неопознанного жесткого диска)

Я пытался переключить режим SATA в UEFI, отключить быструю и безопасную загрузку, обновить прошивку UEFI, но результат тот же.

Версии Linux: Ubuntu-desktop 18.04, linuxmint-20-cinnamon.

Upd1: Я пробовал разные ядра из репозиториев Ubuntu и из https://kernel.ubuntu.com/~kernel-ppa/mainline .

Upd2: Похоже, это проблема Linux, а не только Ubuntu, потому что Fedora33-beta также не распознает HDD.

Upd3: Служба поддержки Acer ответила, что не помогает с установкой ОС.

0
задан 21 October 2020 в 21:14

1 ответ

Поскольку жесткий диск успешно распознается после приостановки и последующего пробуждения, обходным путем является для принудительной приостановки перед монтированием файловой системы /.Это делает ядро, собранное с CONFIG_PM_TEST_SUSPEND=y и загруженное с параметром ядра test_suspend=mem.

О CONFIG_PM_TEST_SUSPEND=y из справки по исходным кодам ядра:

Эта опция позволит вам приостановить работу компьютера во время загрузки и активировать его через несколько секунд с помощью сигнала пробуждения RTC. Включите это с помощью параметра ядра, такого как «test_suspend=mem».

Чтобы установить Linux на такой ноутбук, вам необходимо:

  1. Загрузиться с live-USB
  2. Приостановить работу ноутбука и вывести его из спящего режима
  3. Установить Linux на внутренний диск
  4. Chroot в недавно установленную ОС
  5. ]Загрузите исходники ядра
  6. Соберите и установите ядро ​​с помощью CONFIG_PM_TEST_SUSPEND=y
  7. Установите test_suspend=mem в загрузчик
  8. Перезагрузите

Подробнее о некоторых шагах

  1. Chroot в недавно установленную ОС

За исключением привязки монтирования /dev, /dev/pts, /proc и /sys не забудьте сделать это для /run, чтобы разрешить доступ в интернет из chroot (если вам это нужно).

  1. Установите test_suspend=mem в загрузчик (если у вас загрузчик grub)

Для этого откройте /etc/default/grub (конечно, из chroot) , найдите строку, начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT=, и замените quiet splash на test_suspend=mem. Затем запустите

update-grub

2
ответ дан 30 October 2020 в 17:58

Другие вопросы по тегам:

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