3

У меня есть диск SATA и диск IDE на настольном компьютере, и я установил Windows 7 на диск SATA, в то время как ArchLinux в IDE, диск установлен на диск IDE.

В ArchLinux /etc /fstab я установил корневое устройство монтирования как /dev /sda2 вместо /dev /sdb2, как обнаружено в программе установки ArchLinux.

Однако каждый раз, когда я загружаюсь из grub в ArchLinux, есть вероятность, что initrd не сможет прочитать из /dev /sda2, поскольку кажется, что /dev /sda - это диск Windows 7, а не ArchLinux. Но иногда это работает, так как /dev /sda становится ArchLinux. Другими словами, будет ли диск ArchLinux /dev /sda или /dev /sdb другим после перезагрузки.

Мне интересно, если это помогает использовать UUID для выбора раздела вместо пути устройства. И есть ли другое решение этой проблемы?

3 ответа3

2

Использование UUID всегда лучший вариант. Но, как говорится, ваша проблема исходит от вас uDev. Некоторым более старым контроллерам Sata требуется немного времени для ускорения, и к тому времени udev уже нашел диск IDE и использовал его в качестве первого диска. Хотя я верю, что это только из Cold-Boot.

При работе с Coreboot я часто сталкивался с этой проблемой, и единственным реальным решением, которое я нашел, была пауза в системе на несколько секунд (мои 1 ТБ заняли все 20 секунд), чтобы позволить дискам раскрутиться.

Надеюсь, это поможет каким-то образом!

1

Как говорится в ответе Crankyadmin, идентификация раздела по UUID предпочтительнее, чем использование путей к устройствам.

Другой альтернативой является идентификация по метке раздела. Я предпочитаю это UUID, потому что он гораздо более понятен человеку, но вам нужно убедиться, что ваши разделы используют уникальные метки, и некоторые символы, которые в других случаях допустимы в метках разделов, могут быть проблематичными для этого использования (в частности, пробелы могут не работать Что ж).

Вы можете добавить метки к своим разделам ext(2,3,4) с помощью tune2fs -L <new-label> <device> или во время форматирования, используя опцию -L <new-label> с mkfs.ext(2,3) Используйте метки так же, как UUID, в /etc/fstab и /boot/grub/menu.lst:

# fstab w/ UUID
UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37  /     ext3    defaults,errors=remount-ro 0 1

# fstab w/ label
LABEL=arch-root      /     ext3    defaults,errors=remount-ro 0 1


# GRUB config w/ UUID
kernel          /boot/vmlinuz-2.6.20-15-generic root=UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37 ro quiet splash

# GRUB config w/ label
kernel          /boot/vmlinuz-2.6.20-15-generic root=LABEL=arch-root ro quiet splash
0

Я согласен с предыдущими комментариями об использовании UUID вместо /dev /sdX в ваших конфигурациях (например, в /etc /fstab). Хотя это старый вопрос, я подумал, что поделюсь этой страницей, которую нашел, когда сталкивался с подобной проблемой сегодня. Кажется, это хороший справочник о том, как использовать UUID (или метки, если вы предпочитаете их).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .