Установка SuSE на внешний USB диск
Содержание
Введение
Данная статья описывает шаги по установке SuSE на внешний USB носитель, а также запуск SuSE с внешнего USB носителя, используя установленный Windows.
Подготовка
Что Вам понадобится:
- Установочный DVD или CD с SuSE Linux
И больше ничего!
Загрузка
Загрузите компьютер с установочного DVD.
Установка
Следуйте инструкциям мастера установки до момента конфигурации загрузчика GRUB. При настройке загрузчика выберите режим Эксперт, в Установке загрузчика, перейдите на диалог Установки загрузчика, выберите Загрузка с корневого раздела для Местоположение загрузчика. После установки, SuSE перезапустится автоматически. Так как GRUB установлен не в MBR, прямая загрузка с жесткого диска будет не возможна. Загрузитесь с установочного DVD еще раз, перейдите на Режим установки, выберите Загрузить установленную систему из меню Другие Опции, для завершения установки.
Войдите в систему как пользователь root, запустите grub-install в терминале:
grub-install /dev/sdb
для установки GRUB в MBR на внешнем носителе.
- Предупреждение: Не устанавливайте GRUB прямо в MBR на внутреннем жестком диске при работе мастера установки, в противном случае загрузчик GRUB не сможет загрузить систему в тот момент, когда внешний носитель будет отключен.
Конфигурация GRUB
Если у Вас есть один внутренний SATA диск и один внешний USB диск, то файл /boot/grub/device.map должен иметь следующий вид:
(hd0) /dev/sda (hd1) /dev/sdb
- Предупреждение: При загрузке с внешнего диска, GRUB считает внешний диск как /dev/sda (hd0) и внутренний диск как /dev/sdb (hd1), это противоположно при загрузке с внутреннего диска.
Отредактируйте /boot/grub/menu.lst, замените все hd0 на hd1 и hd1 на hd0.
В случае будущих обновлений ядра, файл /boot/grub/menu.lst возможно будет обновлен программой Yast: запомните, что та же коррекция (hd0 <-> hd1) возможно понадобится еще.
Дополнительные шаги для загрузки существующей системы Windows через GRUB
Как сказано ранее, GURB представляет внутренний диск как (hd1) и если Вы попытаетесь напрямую загрузить Windows из GRUB, загрузка остановится после команды chainloader (hd1,0)+1 потому что загрузчик Windows (NTLDR) не позволяет загружаться с подчиненного жесткого диска. Для решения этой проблемы, добавьте две строки в раздел Windows файла /boot/grub/menu.lst:
map (hd0) (hd1) map (hd1) (hd0)
Таким образом раздел должен выглядеть следующим образом:
###Don't change this comment - YaST2 identifier: Original name: windows### title Microsoft Windows XP Professional map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) chainloader +1
Сохраните изменения в menu.lst и перезагрузитесь, загрузчик Windows должен работать.
Заключение
Сейчас система может запускаться с использованием загрузчика GRUB когда внешний диск подключен и BIOS сконфигурирован на возможность загрузки с внешнего USB устройства. Когда внешний диск не подключен, система запускается с внутреннего диска, как и было ранее.
Когда загрузка с USB не работает
Некоторые компьютеры не поддерживают загрузку с внешних USB дисков, вне зависимости от настроек BIOS или того, что прописано в файле menu.lst. Есть альтернативное решение этой проблемы.
Использование внутреннего диска
Решением является создание небольшого раздела на внутреннем диске, с файловой системой ext3 и монтируемого как /boot, установка GRUB прямо в MBR и настройку BIOS на загрузку с внутреннего диска. Не забудьте подключить внешний диск перед загрузкой SuSE. (Отключение внешнего диска не повлияет на работу загрузчика)
Использование CD-образа
Возможно подготовить загрузочный CD, основанный на установленной у Вас системе. Загрузочный CD загружает ядро и переключается на корневой раздел, расположенный на внешнем USB диске. Однако, это является проблемой. Ядра используемые в SuSE по-умолчанию имеют USB драйвера, скомпилированные в виде модулей, что делает не доступным корневой раздел. Вам необходимо скомпилировать свое собственное ядро и включить USB драйвера в ядро.
В RedHat Linux был включен скрипт, способный создавать загрузочные образы. Проверьте установлены ли у Вас пакеты mkisofs и syslinux. Загрузите и сохраните модифицированный для SuSE скрипт отсюда. Проверьте версию ядра Вашей системы (cat /proc/version or ls -l /boot/vmlinuz*) и запустите скрипт:
./mkbootdisk.from.rh4-modified --device boot.iso -v --iso 2.6.18.2-34-default
boot.iso это имя файла образа, который будет создан.
2.6.18.2-34-default это версия ядра системы, которое будет записано в образ.
А теперь запишите созданный образ на CD и загрузитесь с него.
Использование Менеджера томов Линукса (LVM) для корневого раздела, расположенного на USB диске
Если Ваш USB диск использует Менеджер томов Линукса (LVM) для хранения корневой файловой системы и встроенный скрипт /init не хочет находить его и завершает работу выходом в shell, то чтобы исправить это, необходимо наложить следующую заплатку на /sbin/mkinitrd и перезапустить его:
--- /root/mkinitrd-orig 2007-03-24 20:54:03.000000000 -0700 +++ mkinitrd 2007-03-24 21:22:26.000000000 -0700 @@ -2445,6 +2445,16 @@ | break; | fi | sleep 1 + EOF + + if [ -n "$root_lvm2" ]; then + cat_linuxrc <<-'EOF' + | /sbin/lvm vgscan + | /sbin/lvm vgchange -ay + EOF + fi + + cat_linuxrc <<-'EOF' | echo -n "." | timeout=$(( $timeout - 1 )) | done