Linux ide или ahci

Не могу понять что происходит: SSD, HDD, AHCI Mode vs IDE Mode

Простите за сумбурность, но мне сложно восстановить по памяти историю развития проблемы.
Есть у меня HDD (SATA), на котором была установлена Windows 7 и неплохо работала. Один NTFS раздел на HDD используется для хранения данных постоянно и монтируется в Linux.
После покупки SSD, также вероятно, в BIOS были изменены настройки на AHCI Mode, и Linux на SSD уже устанавливался в этом режиме. Всё было хорошо. Спустя некоторое время Windows вдруг стала очень медленно загружаться.
После некоторых неудачных попыток решения проблемы, было принято решение отформатировать разделы, где стояла Windows, т.к. основной рабочей системой уже был Linux. После этой операции около полугода всё было нормально. Во всяком случае мне не приходилось следить за сиcтемой (Linux), ибо критических ситуаций не возникало.
Через время потребность в Windows настала, и пришлось её установить. Установка с флешки на HDD точно производилась в IDE mode. После переключения в настройках BIOS на AHCI Mode для загрузки Linux с SSD, загрузка Linux стала медленной, и начались проблемы с дисками: — на HDD gparted check: cluster is reference multiple times. Ошибки дисков были исправлены, но на ситуацию это не повлияло.
При изменении настроек BIOS по-отдельности для загрузки Windows — IDE Mode — Windows загружается нормально, а для загрузки Linux с SSD (AHCI Mode) — Linux стала загружаться медленно. Windows при этом успешно загружается только в IDE Mode, в AHCI заходит в бесконечный reboot.

Сейчас оставил подключенным только SSD, загрузка Linux так же медленная.

Что смущает в логах: Долгая пауза на (не помню, чтобы такое раньше было):

ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT4._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-529) ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.SAT0.SPT4._GTF.DSSP], AE_NOT_FOUND (20190816/psargs-330) При подключенном HDD и загрузки Linux: invalid CHS sector 0 Также долгая попытка размонтировать NTFS раздел на HDD при shutdown/reboot, который прописан в fstab. 

Источник

Если вопрос правильно поставить, он может долго простоять.

Ускорение работы жёсткого диска: режим AHCI для SATA

Скорость работы компьютера равна скорости работы его самой медленной детали. По факту, самая медленная деталь в компьютере — это винчестер.

Читайте также:  Timeshift linux через терминал

Практически все современные жёсткие диски имеют интерфейс SATA и поддерживают протокол SATA II. Практически все современные материнские платы умеют работать с этим протоколом и поддерживают несколько режимов работы контроллера, а именно:

  • IDE — Заставляет SATA работать в режиме IDE.
  • RAID — Включает встроенный RAID-контроллер, после чего появляется доступ к его настройкам.

Важно понимать, что такой RAID — программный, а не аппаратный. Программный, хоть и на уровне BIOS.
Его использование бесполезно в Linux-системах (гораздо лучше и правильнее организовать рейд средствами самого линукса), но вполне оправдано для Windows (чтобы избежать геморроя с динамическими дисками).

AHCI (Advanced Host Controller Interface) — это механизм, используемый для подключения накопителей информации по протоколу Serial ATA, позволяющий пользоваться расширенными функциями, такими как, встроенная очередность команд (NCQ) и горячая замена. Википедия

Проблема в том, что по умолчанию всегда включен режим работы «IDE», по соображениям совместимости. И всё, что нам нужно сделать — просто переключить его на «AHCI».

Инструкция для Linux

Инструкция для Windows XP

  1. Запускаем Windows XP
  2. Скачиваем с инета нужный SATA-драйвер для контроллера
  3. В диспетчере устройств принудительно меняем существующий IDE-драйвер на скачанный (здесь подробная инструкция)
  4. Перезагружаемся и заходим в BIOS
  5. Включаем режим AHCI
  6. Перезагружаемся в Windows XP (теперь загрузка станет возможной). Установка «новых» устройств пройдёт автоматически
  7. Перезагружаемся (винда сама об этом попросит)

Дополнительно

Горячая замена

Диск, подключённый к SATA-контроллеру, работающему в режиме AHCI, можно заменить на лету. То есть, не выключая компьютер. В режиме IDE так не получится, новый диск будет невидимым до перезагрузки компьютера.

Очень актуально для дисковых док-станций, подключенных через eSATA и для программных RAID-массивов.

В BIOSе отсутствует функция переключения режимов

Обычно такое бывает с компьютерами «Vista Ready».

Режим AHCI включен по умолчанию, настройка из биоса убрана. Сделано для того, чтобы обычный пользователь не смог установить ХР (в её инсталляторе нет нужных драйверов, а в стандартный IDE мы переключиться не можем).

Результат сговора микрософта с производителями.

В этом случае можно попробовать найти стороннюю прошивку BIOSа, где опция режима будет доступна.
Использовать — только на свой страх и риск. Процедура перепрошивки BIOSа сама по себе опасна. Прошивка сторонним биосом — опасна вдвойне.

NCQ (Native Command Queuing), встроенная (аппаратная) очерёдность команд

Устройства с поддержкой NCQ способны принимать несколько запросов одновременно и реорганизовывать порядок их выполнения для достижения максимальной эффективности (производительности) с учётом внутренней архитектуры устройства (минимизируя количество перемещений головок и ожидание нужного сектора на треке).

Даёт прирост производительности в 15-30%.

Поддерживается ли NCQ в RAID?

NCQ работает на аппаратном уровне железяки, винчестера. То есть, на более низком уровне, чем любой RAID.

Поэтому «поддерживается» — неправильное слово. Если у винчестера есть NCQ, то она работает вне зависимости от того, в каких условиях находится винчестер.

Linux – перевод SATA контролера c IDE режима в AHCI

Итак, возникла потребность перевести SATA контролер с режима IDE в AHCI. Сменил режим в BIOS, перезагрузил сервер и получил kernel panic. Оказалось что не все так просто.

Итак, что нужно сделать чтобы система загрузилась:

1) возвращаем режим IDE в BIOS, загружаем систему.

2) Открываем на редактирование /etc/modprobe.conf и ищем строчку:

alias scsi_hostadapter ata_piix

Заменяем ее строчкой:

alias scsi_hostadapter ahci

3) пересобираем образ initrd с поддержкой AHCI:

mkinitrd –preload=ahci /boot/initrd-`uname -r`-ahci.img `uname -r`

4) правим grub.conf , добавляем новый пункт меню с новым initrd

5) перезагружаем сервер, входим в BIOS и выставляем режим AHCI, сохраняем настройки и загружаем систему. После загрузки системы просматриваем вывод dmesg и видим что AHCI включился.

Источник

How do I determine if my controller is in IDE or AHCI mode in Linux?

I have an old MacBook Pro 4,1 (early 2008) — but I suspect an answer would apply to many MacBook Pros. It has an Intel IDE/SATA controller (ICH8M/ICH8M-E). I have installed a patched MBR that is supposed to put my controller into AHCI mode. It does this by setting some controller port value that I don’t understand. This seems to work as I get this from lspci:

00:1f.1 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03) 00:1f.2 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 03) 

Now most, perhaps all, sites that provide a solution (enabling AHCI) suggest that after a sleep/wake cycle that a controller will revert to IDE mode due to how Apple supports Windows. They recommend disabling sleep. From author of patchedcode.bin I think Enabling AHCI for Windows on MacBooks NB: I do not have Boot Camp installed and I do not have Windows installed. Is there a way to prove that my controller is in IDE or AHCI mode? Background Data Using patchedcode.bin MBR I get this in syslog:

Jun 12 22:33:22 max kernel: [ 1.860955] ahci 0000:00:1f.2: version 3.0 Jun 12 22:33:22 max kernel: [ 1.861052] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X Jun 12 22:33:22 max kernel: [ 1.861117] ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 3 ports 1.5 Gbps 0x1 impl SATA mode Jun 12 22:33:22 max kernel: [ 1.861120] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ccc ems Jun 12 22:33:22 max kernel: [ 1.861130] ahci 0000:00:1f.2: setting latency timer to 64 Jun 12 22:33:22 max kernel: [ 1.880880] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) Jun 12 22:33:22 max kernel: [ 1.880983] scsi2 : ahci Jun 12 22:33:22 max kernel: [ 1.884552] scsi3 : ahci Jun 12 22:33:22 max kernel: [ 1.886932] scsi4 : ahci Jun 12 22:33:22 max kernel: [ 1.886998] ata3: SATA max UDMA/133 abar m2048@0xdb504000 port 0xdb504100 irq 45 Jun 12 22:33:22 max kernel: [ 1.887000] ata4: DUMMY Jun 12 22:33:22 max kernel: [ 1.887002] ata5: DUMMY Jun 12 22:33:22 max kernel: [ 2.204103] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300) Jun 12 22:33:22 max kernel: [ 2.204656] ata3.00: ATA-8: FUJITSU MHY2200BH, 0081000D, max UDMA/100 Jun 12 22:33:22 max kernel: [ 2.204662] ata3.00: 390721968 sectors, multi 16: LBA48 NCQ (depth 31/32), AA Jun 12 22:33:22 max kernel: [ 2.205324] ata3.00: configured for UDMA/100 Jun 12 22:33:22 max kernel: [ 2.205554] scsi 2:0:0:0: Direct-Access ATA FUJITSU MHY2200B 0081 PQ: 0 ANSI: 5 
Jun 13 18:07:13 max kernel: [ 0.622861] ata_piix 0000:00:1f.1: version 2.13 Jun 13 18:07:13 max kernel: [ 0.622869] ata_piix 0000:00:1f.1: power state changed by ACPI to D0 Jun 13 18:07:13 max kernel: [ 0.622924] ata_piix 0000:00:1f.1: setting latency timer to 64 Jun 13 18:07:13 max kernel: [ 0.623339] scsi0 : ata_piix Jun 13 18:07:13 max kernel: [ 0.623730] scsi1 : ata_piix Jun 13 18:07:13 max kernel: [ 0.623765] ata1: PATA max UDMA/100 cmd 0x8108 ctl 0x811c bmdma 0x80e0 irq 21 Jun 13 18:07:13 max kernel: [ 0.623767] ata2: PATA max UDMA/100 cmd 0x8100 ctl 0x8118 bmdma 0x80e8 irq 21 Jun 13 18:07:13 max kernel: [ 0.623810] ata_piix 0000:00:1f.2: MAP [ Jun 13 18:07:13 max kernel: [ 0.623811] P0 -- -- -- ] Jun 13 18:07:13 max kernel: [ 0.623866] ata_piix 0000:00:1f.2: setting latency timer to 64 Jun 13 18:07:13 max kernel: [ 0.624241] scsi2 : ata_piix Jun 13 18:07:13 max kernel: [ 0.624558] scsi3 : ata_piix Jun 13 18:07:13 max kernel: [ 0.624862] ata3: SATA max UDMA/133 cmd 0x80f8 ctl 0x8114 bmdma 0x8020 irq 18 Jun 13 18:07:13 max kernel: [ 0.624865] ata4: SATA max UDMA/133 cmd 0x80f0 ctl 0x8110 bmdma 0x8028 irq 18 Jun 13 18:07:13 max kernel: [ 1.208879] ata3.00: ATA-8: FUJITSU MHY2200BH, 0081000D, max UDMA/100 Jun 13 18:07:13 max kernel: [ 1.208882] ata3.00: 390721968 sectors, multi 16: LBA48 NCQ (depth 0/32) Jun 13 18:07:13 max kernel: [ 1.208961] ata1.01: ATAPI: MATSHITA DVD+/-RW UJ-867S, 1.00, max UDMA/33 Jun 13 18:07:13 max kernel: [ 1.216186] ata3.00: configured for UDMA/100 Jun 13 18:07:13 max kernel: [ 1.224396] ata1.01: configured for UDMA/33 

Источник

Оцените статью
Adblock
detector