Внешний диск — отличный способ вдохнуть жизнь в старые устройства или позволить запустить Linux на машине, которая не может (или не хочет) менять внутренний жёсткий диск. Допустим, вы хотите использовать Linux в системе двойной загрузки, но у вас нет свободного места на жёстком диске компьютера. Одно из решений — использовать «активный» дистрибутив Linux, например Knoppix, который может запускаться напрямую с CD. Этот метод действительно работает при периодическом применении, но у него есть ряд серьёзных недостатков:
Для постоянного сохранения всё равно нужны файлы данных. Если вы используете только очень маленькие файлы, можно использовать дискеты; Для средних файлов USB-флешка может быть достаточной, но ни один из них не идеален.
При использовании «активных» CD очень сложно или даже невозможно установить собственные приложения или настраивать существующие.
Использование активного дистрибутива замедляет производительность, особенно при запуске всех устройств — но также и во время выполнения (потому что всё нужно загружать с CD, что обычно происходит гораздо медленнее, чем с жёсткого диска).
Естественно, есть и другие варианты. Например, вы можете купить другие встроенные диски и установить на них Linux. Но часто на машине нет свободных отсеков для дисков (особенно для ноутбуков, которые обычно разрешают только один внутренний жесткий диск).
В качестве альтернативы можно использовать более крупный диск вместо текущего и установить Linux на дополнительное место. Однако это требует много времени, так как нужно переустановить существующую ОС на новый диск, переустановить и перенастроить все приложения, а также восстановить все данные.
Лучшее решение — купить внешний жёсткий диск и установить на него Linux. Это позволяет подключать внешние диски только тогда, когда вы хотите использовать Linux, не меняя существующее железо и программное обеспечение.
Варианты съемных приводов
Ассортимент мобильных устройств, способных устанавливать Linux, варьируется от дисководов для гибких дисков до USB-флэш-устройств, жёстких дисков USB/FireWire и многого другого.
Хотя верно, что Linux может устанавливаться на устройства с малым объёмом, такие как дискеты объемом 1,44 МБ или USB-диски на 32 МБ, это часто (обязательно) специализированные уменьшённые дистрибутивы, например, для спасения повреждённых установок.
Однако внешние жёсткие диски предлагают наибольшую гибкость для универсального дистрибутива Linux по разумной цене.
Внешние приводы выпускаются от разных производителей (Maxtor, Western Digital и др.) и могут выпускаться в разных размерах. Все эти диски содержат внешний бокс, который содержит стандартные IDE-диски 3-1/2" или 2-1/2". Эти диски обычно подключаются к компьютеру через USB или IEEE1394 (FireWire).
Существует две основные версии USB: 1.1 и 2.0. Версия 1.1 имеет максимальную скорость передачи 12 Мбит/с (мегабит в секунду), а версия 2.0 поддерживает скорость передачи до 480 Мбит/с. Хотя большинство дисков, совместимых с 2.0, обратно совместимы с 1.1, обычно лучше избегать версии 1.1, если нет другого выбора (потому что она медленнее).
Стандарт FireWire также определяет множество возможных скоростей, но на самом деле, когда говорят о FireWire, они имеют в виду «FireWire400», поддерживающий передачу до 400 Мбит/с.
По скорости выбор между USB 2.0 и FireWire особо нечего: хотя USB 2.0 показывает более высокие скорости, на самом деле они похожи из-за различий. Если у вашего компьютера есть и то, возможно, лучше использовать USB вместо FireWire (я позже объясню почему), но если у вас только FireWire, то, конечно, можно выбрать только FireWire. Для максимальной гибкости выбирайте из большого количества дисков с поддержкой USB 2.0 и FireWire (например, тот, который я буду использовать позже в этой статье).
Платы FireWire и USB 2.0 недороги для компьютеров без нужных портов, PCI (для настольных компьютеров) и PCMCIA (для ноутбуков): например, карта PCMCIA FireWire, которую я использовал позже в этой статье, стоила около 10GBP (меньше $20).
Чтобы закончить эту статью, я купил коробку с внешним приводом диаметром 5 1/4". Это очень гибкий кулон, который не идёт в комплекте с диском и может помещаться в любое стандартное IDE-устройство, включая жёсткие диски диаметром 3-1/2" и 5-1/4" IDE-устройства, такие как CD-RW/DVD-RW-диски. Корпус поддерживает USB 2.0 и FireWire.
Чтобы подключить планшетный бокс к моему ноутбуку IBM Thinkpad T30, я также купил карту PCMCIA FireWire (встроенный USB-порт поддерживает только USB 1.1).
И картридж, и карта FireWire дешевле (50GBP и 10GBP соответственно).
Для тестирования я подключил platter box к 13GB IDE-диску 3-1/2", который подготовил — в реальном использовании я бы покупал диски большего объёма, которые сейчас тоже стоят очень дешево (примерно 50GBP за GB!). )
Поддержка Linux
Как и следовало ожидать, поддержка этих лотков в Linux действительно хороша. Любое устройство, соответствующее стандарту SBP (Serial Bus Protocol) для «устройств с большим объемом», легко может использоваться с Linux.
В целом, чтобы обеспечить поддержку этих устройств, ядро должно поддерживать множество функций (либо напрямую скомпилированные, либо через модули).
Для USB и FireWire поддержка устройств SBP реализуется через эмуляцию SCSI — то есть устройства отображаются в Linux как SCSI-диски. Это распространённый способ абстракции устройств хранения в Linux (например, диски IDE CD/DVD также часто подключаются с помощью эмуляции SCSI). Поэтому требуется следующая поддержка ядра:
* Поддержка SCSI
* Симуляция SCSI
* Поддержка дисков SCSI
Кроме того, в зависимости от способа подключения может потребоваться следующая поддержка:
Для FireWire:
IEEE1394 поддержка
OHCI1394 поддержка
RAW1394 поддержка
Поддержка SBP-2
Для USB:
(Хост) Поддержка USB
Поддержка OHCI
Поддержка UHCI
Поддержка USB массового хранения
Очевидно, что вам нужно полностью поддерживать другое оборудование (видеокарту и т.д.), и в зависимости от вашей реальной ситуации могут понадобиться другие модули.
Например, я использую карту FireWire PCMCIA (cardbus), поэтому мне нужно добавить:
Поддержка PCMCIA
Поддержка cardbus
Установка
Теперь, когда у нас есть внешнее устройство, мы начнём устанавливать Linux на него.
Самый простой способ установить Linux сейчас (на мой взгляд, конечно) — подключить всё оборудование (здесь это включает подключение карты PCMCIA FireWire, подключение кабеля FireWire к карте PCMCIA и диску, а также включение выключателя питания диска); Затем загрузите компьютер с установочным CD выбранного вами дистрибутива.
Дистрибутив, который я выбрал, был Gentoo (см. ссылки для связанных ссылок), поэтому использовал последний "Universal" x86 Live CD (2004.1). Другие распределения должны требовать больше или меньше шагов, чем описанные здесь.
После загрузки с установочным диском он должен был распознать ваш диск, если повезёт. Диск должен отображаться как диск под /dev/sdX, где X — строчная буква, начинающаяся с «a». В моей системе внешний диск обнаруживается как /dev/sda, но если у вас есть другие SCSI-диски (имитированные SCSI-диски), это меняется; В таком случае это может быть /dev/sdb или какая-то другая буква. Если диск не обнаружен автоматически, могут потребоваться дополнительные шаги — например, возможно, придётся включить FireWire или PCMCIA через опцию загрузки, или ручную загрузку модулей ядра или что-то подобное (см. ссылку на руководство по устранению неполадок).
После идентификации диска он действительно должен функционировать как внутренний жёсткий диск для остальной части установки; Так что вы сможете разделить его по необходимости и установить Linux как обычно.
Однако небольшое предупреждение: будьте осторожны при выборе места установки загрузчика (обычно GRUB или LILO) — я не рекомендую устанавливать его в Master Boot Record (MBR), который обычно является стандартным. Вместо этого его следует устанавливать в корневой раздел (или загрузочный раздел, если используется отдельный загрузчик) внешнего диска.
Теперь, когда Linux установлен в устройстве, давайте загрузим Linux. Здесь есть несколько советов, с которых стоит начать.
Руководство
Прежде чем обсуждать загрузку нового диска, стоит разобраться в некоторых теориях загрузчиков.
Загрузчик обычно устанавливается в MBR первого жёсткого диска компьютера. Когда запускается загрузчик (BIOS автоматически выполняет код в MBR), обычно отображается меню ОС, которое может загрузиться. Выберите заданную загрузку операционной системы.
В этой ситуации стоит отметить два момента:
* Меню выбора операционной системы (обычно) загружается с диска.
* Для загрузки ОС загрузчик должен прочитать соответствующее ядро с диска.
Поскольку вышеописанное происходит до загрузки ОС, это означает, что все чтения диска должны происходить по принципу выполнения вызовов BIOS. Это связано с серьёзными проблемами: то есть для прямой загрузки диска BIOS должен поддерживать диски, подключённые через FireWire или USB. Это часто можно рассматривать как опцию BIOS для загрузки с таких дисков. На самом деле, поддержка BIOS FireWire сейчас редка, но поддержка USB становится довольно распространённой. Так что если вы используете USB на относительно новом компьютере, вы должны иметь возможность загрузить диск напрямую в Linux.
После установки GRUB в MBR внешнего диска я могу загрузить диск напрямую при подключении через USB. При загрузке подключённый диск просто входит в программу настройки BIOS. Внешний диск будет выглядеть как обычный жёсткий диск: переместите его так, чтобы он стоял перед внутренним диском в порядке загрузки.
Я также могу установить загрузчик в MBR внутреннего диска и использовать его для загрузки USB-накопителя (на этом этапе он отображается как hd1 в GRUB в GRUB). Если вы используете FireWire, есть вероятность, что BIOS не сможет загрузить диск напрямую и потребуется дополнительные действия.
К счастью, благодаря гибкости Linux, если вы не можете загрузиться напрямую (с PCMCIA FireWire — это точно мой случай!). ), существуют довольно простые решения. Начальные этапы загрузки могут выполняться с поддерживаемого устройства, такого как дисковод для гибких дисков, CD, USB-ключ или крошечный раздел на основном диске, а затем дополнительные операции могут выполняться с помощью внешнего диска.
Создание загрузочного образа
Загрузка может осуществляться двумя способами:
* Одноступенчатое наведение
Ядро загружается, устанавливает корневую файловую систему и продолжает инициализацию, вызывая скрипт инициализации (обычно /sbin/init).
* Двухступенчатый (начальный) бустстрэппинг
Ядро загружается, устанавливает исходный диск RAM (initrd) и выполняет дальнейшую настраиваемую инициализацию, затем установите корневую файловую систему и приступите к инициализации (обычно также вызывая /sbin/init). Оба метода имеют свои преимущества и недостатки.
Один этап руководства
Чтобы использовать одноступенчатую загрузку, нужно создать ядро с всеми драйверами, необходимыми для установки встроенной корневой файловой системы
|