sda и sdb продолжают меняться

sda и sdb продолжают меняться

Ящик представляет собой микросервер HP, работающий под управлением Ubuntu 16.04. Недавно я «обновил» загрузочное устройство до SSD на 64 ГБ. Дополнительно имеется диск SATA на 1 ТБ.

Обычно он загружается /dev/sda1как основной раздел (на SSD) и /dev/sda5как раздел подкачки, и /dev/sdb1указывает на раздел на жестком диске объемом 1 ТБ, который смонтирован в /mnt/media0.

Проблема в том, что иногда все это меняется, и SSD теперь /dev/sdb1, /dev/sdb5а раздел носителя теперь /dev/sda1.

Это, конечно, приводит к сбою монтирования разделов подкачки и носителей, поскольку они указаны под /etc/fstabсвоими предыдущими /dev/sd*именами.

Так что я:

  1. Проверил BIOS, и он постоянно указывает SSD объемом 64 ГБ как первый диск, а IDE объемом 1 ТБ — как второй.

  2. Я попытался изменить /etc/fstabссылку на носитель по метке тома, но это приводит к сбою Ubuntu при запуске и переводит меня в режим восстановления.

  3. Я попытался изменить /etc/fstabссылку на разделы подкачки и носителя (ext4) с помощью UUID (так как, по сути, он указывает основной раздел)ноИ тут я сталкиваюсь со второй проблемой.

Когда я выполняю следующую команду, чтобы найти UUID различных разделов...

ls /dev/disk/by-uuid
blkid

оба перечисляют только 1 запись – UUID основного раздела. Я могу видеть только UUID раздела носителя, используя (при загрузке, где он, по сути, назначается, sdb1очевидно)

tune2fs -l /dev/sdb1

но опять же, если я использую этот UUID, /etc/fstabто Ubuntu не загружается и переходит в режим восстановления.

Итак, мои вопросы:

  • Есть ли способ запустить /dev/sdaи /dev/sdbостановить переключение между дисками?

  • Как мне заставить систему видеть UUID других разделов, чтобы я мог использовать их fstab?

  • и/или есть ли другой способ надежно смонтировать разделы подкачки и носители?

решение1

Вы можете использовать имена «disk/by-id» в /etc/fstab, см.

ls -l /dev/disk/by-id

Обратите внимание, что эти имена устройств могут также использоваться в других файлах (initrd, grub configs). Поэтому вы можете обновить конфигурацию grub и пересоздать initrd.

решение2

Он продолжает менять жесткий диск, потому что в разных ядрах есть поддержка udev, а в других нет поддержки udev (eudev)!

Да, я тоже был этим задет, когда начал экспериментировать с sysv, openrc и заменой init s6 (заменой systemd).

Проблема заключается в утилитах grub и их конфигурационных файлах при сборке разных образов Linux vmlinuz на одном диске, ОСОБЕННО при включении GRUB_DISABLE_LINUX_UUID( /etc/default/grubи т. д.) для одной сборки ядра и отключении для других.

== Причина №1 ==

Итак... кто виноват? Старый не-systemd. Подкачка происходит не-systemd, чтобы диск sda всегда был начальной меткой диска, независимо от того, какой разъем SATA/IDE используется.

Заказ дисков выполняется устройством ATA (библиотека SATA или libata), а переупорядочивание выполняется drivers/scsi/ida_probe(). Удалите это GRUB_DEVICE_BOOTиз вашего /etc/default/grubфайла.

== Причина №2 ==

Указание CONFIG_SCSI_DEBUG«yes» (или «m», если используется initramfs с « scsi_debug=add_host:1в параметрах загрузки vmlinuz) почти наверняка увеличит индекс метки «sd» вашего существующего жесткого диска(ов) на единицу: т. е. ваш диск sda1станет sdb1.

Связанный контент