Установка SuSE на внешний USB диск

(перенаправлено с «Installing SuSE on External USB Drive»)
Перейти к: навигация, поиск


Введение

Данная статья описывает шаги по установке 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

Ссылки