Booting from HDD/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Написал инструкцию по установке с гибридной загрузкой (команды были взяты из svn: /data/Tupfile.lua).)
(Исправлена ссылка на файл mbr в подразделе "Оба режима...".)
 
Line 333: Line 333:


Список необходимых файлов:
Список необходимых файлов:
* [https://builds.kolibrios.org/rus/data/programs/hd_load/usb_boot/mbr mbr]
* [http://websvn.kolibrios.org/dl.php?repname=Kolibri+OS&path=%2Fprograms%2Fhd_load%2Fusb_boot%2Fmbr mbr]
* [https://builds.kolibrios.org/rus/data/kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin bootsect.bin]
* [https://builds.kolibrios.org/rus/data/kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin bootsect.bin]



Latest revision as of 16:44, 3 June 2022

BIOS (LEGACY) режим

Обратите внимание, что для установки необходима таблица разделов MBR. Возможно, подойдет гибридная (GPT+MBR).

Установка из-под Windows / DOS

Шаг 1: копирование основных файлов

Скопируйте файлы mtldr и kolibri.img в c:\

Не нравится c:\? Прочитайте замечания ниже.

Шаг 2

А | Для пользователей NT-семейства до Vista (NT/2k/XP/2003 Server (?))

Добавьте в boot.ini в раздел [operating systems] строку c:\mtldr="KolibriOS".

Либо откройте любым текстовым редактором c:\boot.ini, либо через Control Panel -> System -> Advanced -> Startup and Recovery -> Edit. Название в кавычках можете заменить на любое понравившееся, под этим названием система будет появляться в списке загрузки. Теперь при загрузке будет выдаваться экран выбора операционной системы.

Б | Для пользователей 9x-семейства (95/98) (возможно, и некоторых DOS)

Добавьте в config.sys строку install=c:\mtldr

первой строкой, если у вас простой линейный config.sys;
первой строкой в соответствующей секции, если config.sys разбит на секции (и начинается с [menu]).

Теперь при загрузке mtldr будет спрашивать: "Load KolibriOS? [y/n]: " и ожидать нажатия одного из 'y','Y','n','N'.

Для Windows Millenium это не работает, так как Me'шный загрузчик не загружает внешнего кода из config.sys (спасибо camper'у за указание на этот прискорбный факт). Используйте 9x2klbr.

В | Для пользователей Vista

Откройте командную строку от имени администратора (пункт "Run as administrator" в контекстном меню).

Если вы не планируете установку нескольких вариантов KolibriOS как описано в замечаниях, то просто запустите прилагаемый vista_install.bat, иначе выполните следующие команды:

bcdedit /create /d "KolibriOS" /application BOOTSECTOR

Название в кавычках можете заменить на любое понравившееся, под этим названием система будет появляться в списке загрузки.

Должно появиться сообщение вида "Запись {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} успешно создана.". Далее в командах подставьте полученное значение (оно отличается на разных компьютерах).

bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} DEVICE PARTITION=C:

bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} PATH \mtldr

bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast

Общая информация

Удаление в случаях А и Б осуществляется удалением введённых данных в boot.ini и config.sys соответственно.

Удаление в случае В делается так:

Запустите vista_remove.bat, если установка была через vista_install.bat;
bcdedit /delete {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} в общем случае.

Если вы не помните назначенный при установке GUID (это нормальное явление), то узнать его можно, выполнив команду bcdedit без аргументов и найдя в выведенном списке соответствующий элемент.

Во всех случаях в экране выбора параметров KolibriOS можно на вопрос, откуда грузить образ (пункт d, "образ дискеты"), отвечать "3" (использовать уже загруженный образ).

Замечания

1. В настоящее время это работает для файловых систем NTFS и FAT32.

2. Сам загрузчик mtldr необязательно помещать в C:\. Под 9x и Vista он может размещаться где угодно, в NT/2k/XP — на диске C:, но необязательно в корневой папке.
Разумеется, при установке нужно указывать вместо c:\mtldr реальный путь и реальное имя файла.

3. Образ kolibri.img тоже необязательно помещать в C:\. Можно без всяких изменений в установке использовать корневую папку любого логического диска, размещающегося на первом физическом.

4. Если хочется использовать логический диск на другом физическом диске, то сгодится любой из следующих вариантов:

a) (Если вы умеете работать с FASM'ом) В исходниках (которые можно скачать на http://diamondz.land.ru, там же, где и сам загрузчик) поменяйте константу boot_drive (в конце mtldr.asm) с 80h на идентификатор диска, 80h соответствует первому, 81h — второму и т.д. Перекомпилируйте.
б) (Если вы умеете работать с HEX-редактором) Поменяйте байт по смещению 0xD98 с 80h на идентификатор диска (как в пункте а).
в) Используйте установщик mtldr_install (скачать его можно там же; он настроит загрузчик и сам же его установит).

5. Если не хотите устанавливать в корневую папку, то у вас есть два варианта:

а) В исходниках поменяйте строку kolibri_img_name (в конце mtldr.asm) на путь к файлу. Например, для C:\Program Files\kolibri\kolibri.img запишите progra~1\kolibri\kolibri.img (при этом нужны имена 8.3). Перекомпилируйте.
б) Используйте установщик mtldr_install.

6. Если воспользоваться рекомендациями пунктов 2 и 5 и повторить установку несколько раз для разных расположений связки mtldr+kolibri.img, можно получить в загрузочном меню несколько входов для разных версий KolibriOS (или для версий с разными настройками).

7. Пожелания, замечания, предложения отправляйте сюда:

Kolibri на жестком диске

UEFI режим (поддерживает и x32, и x64 загрузчики)

Установка из-под Linux

Внимание: перед началом действий убедитесь в том, что вы знаете, как называется ваш диск (/dev/sdX(N); например, диск /dev/sdb, раздел /dev/sdb1), на который вы хотите установить KolibriOS. В противном случае вы можете потерять данные, например, отформатировав неправильный диск / раздел.

Также рекомендуется запустить систему до установки, чтобы узнать, видит ли KolibriOS ваш диск, куда вы собираетесь установить её.

Для этого руководства мы возьмем диск /dev/sdb. Необязательно ставить KolibriOS прямо на физический диск, вы можете поставить её и на образ диска (например, для работы с виртуальными машинами).

Эта инструкция подробно описывает процесс установки (например, чтобы пользователи Windows, загрузив LiveCD какого-нибудь Linux-дистрибутива, смогли понять, что и как делать). Но она также может быть полезна более опытным пользователям: при должном желании можно довольно гибко настроить систему.

Эти же действия можно проводить и на других системах (в том числе и Windows). Правда, понадобятся другие программы для работы, к примеру, с монтированием дисков.

Шаг 1: создание таблицы разделов и разметка диска (по необходимости)

Для начала нам нужно создать таблицу разделов. Скорее всего, она у вас уже есть, но стоит обратить внимание, что рекомендуется использовать таблицу разделов GPT. Не факт, что ваш компьютер сможет загрузить систему в режиме UEFI с диска с таблицей, например, MBR (однако вы все же можете попробовать).

Запустим программу fdisk для работы с необходимым диском:

$ sudo fdisk /dev/sdb

Итак, теперь нам нужно создать таблицу.

> g

(o — для создания MBR)

Мы создали таблицу GPT. Теперь необходимо разметить диск.

> n

команда создания раздела

1

выберем номер раздела

2048

сектор (в моем случае: 2048 — минимальный), откуда будет начинаться раздел (можно просто нажать [Enter], ничего не вводя)

+3G

размер раздела (K,M,G,T,P для килобайтов, мегабайтов и т.д. соответственно). Для выбора всего оставшегося дискового пространства можно просто нажать [Enter].

Мы создали раздел на диске. Если вы хотите сделать свою разметку (добавить отдельный раздел для документов, например), то можете этим заняться. Далее нам понадобится указать тип для системного раздела:

> t

команда смены типа раздела

1

выберем нужный номер раздела (в нашем случае — 1, но если раздел на диске один, это не будет спрашиваться)

1

выберем нужный тип раздела (1EFI System)

Всё, мы разметили диск. Сохраним и выйдем из программы:

> w

Шаг 2: форматирование диска

Для того, чтобы отформатировать диск, достаточно ввести:

$ sudo mkfs.fat -F32 /dev/sdb1

/dev/sdb1 — созданный нами раздел диска; если создавали несколько, то вам, вероятно, необходимо указать нужный номер раздела (число после "/dev/sdb")

Шаг 3: копирование файлов загрузчика

Чтобы достать файлы загрузчика системы, у нас есть два варианта:

  • мы можем скачать Гибридный UEFI/BIOS образ для Flash/HDD (Скачать KolibriOS), подключить его к системе, примонтировать, а затем достать оттуда всё, что нужно;
  • скачать конкретные файлы с builds.kolibrios.org.

Второй вариант позволит как сэкономить интернет-трафик, так и дает возможность быстрее (и при меньших усилиях) обновлять систему (об этом будет рассказано позже). Однако, можно скачать лишь файлы последней сборки. Первый вариант, как нетрудно понять, позволит нам скачивать более старые версии и устанавливать их. Правда, придётся скачивать порядка 50 мегабайтов архива.

Не будем зря нагружать диск временными файлами, перейдем по пути /tmp, где создадим папку, например, ttmp. Обратите внимание, что файлы тут не сохраняются надолго (все хранится до перезапуска, это в оперативной памяти). Вы можете работать и на диске (например, в ~/ttmp при таком желании.

$ cd /tmp

$ mkdir ttmp

Способ 1: достать файлы из образа

Перейдем на сайт KolibriOS и скачаем там вышеупомянутый образ. Если вам нужно поставить более старую версию, то они располагаются тут: builds.kolibrios.org/rus/history. Итак, получим 7z-архив, который нужно распаковать.

Теперь нам следует распаковать архив. Скорее всего, он сохранился в ~/Downloads/latest-raw.7z (или ~/Загрузки/latest-raw.7z).

$ 7z e ~/Downloads/latest-raw.7z

e — распаковать всё в текущую директорию без папок

Заметим, что в архиве лежит kolibri.raw — образ, который нам нужно подключить:

$ sudo losetup loop3 kolibri.raw

если произошла ошибка, то, вероятно, виртуальное устройство /dev/loop3 уже занято; вы можете посмотреть, начиная с какой цифры /dev/loopN свободны и выбрать такой (в losetup --list можно увидеть, какие заняты)

$ sudo partprobe /dev/loop3

попросим систему найти разделы в подключенном образе

$ mkdir rawfiles

создадим папку, куда примонтируем раздел с файлами системы

$ sudo mount /dev/loop3p1 rawfiles

примонтируем раздел в созданную папку

Теперь по пути ./rawfiles лежит множество системных файлов. Оттуда нам понадобится всё, что находится в rawfiles/EFI/BOOT и потом, скорее всего, rawfiles/KOLIBRIOS.

Создадим папку, куда примонтируем наш диск:

$ mkdir mnt

$ sudo mount /dev/sdb1 mnt

монтируем наш раздел в папку mnt

Теперь скопируем файлы загрузчика с образом дискеты на диск:

$ sudo cp -a rawfiles/EFI mnt/

В способе 2 также будет рассказано о том, для чего нужен каждый файл.

Установка минимальной + расширенной сборки прямо на диск

Пока у нас смонтирован kolibri.raw, мы можем достать оттуда папку KOLIBRIOS, в которой лежат распакованные файлы минимальной сборки + всё то, что поставляется в расширенной (или ISO) сборке.

Придумаем название для папки, в которой будет располагаться ОС. Допустим, KOS_ROOT.

$ sudo mkdir mnt/KOS_ROOT

создадим её

$ sudo cp -a rawfiles/KOLIBRIOS/* mnt/KOS_ROOT

скопируем все файлы сборки
Отключение образа

Теперь можно размонтировать kolibri.raw:

$ sudo umount rawfiles

$ sudo losetup -d /dev/loop3

отключим образ системы

Способ 2: скачать конкретные файлы с сервера

По адресу builds.kolibrios.org/rus/data вы можете найти файлы, которые упаковываются в последнюю сборку системы (туда, что скачивали в первом способе).

Для работы загрузки в режиме UEFI понадобятся бинарники загрузчика:

$ wget https://builds.kolibrios.org/rus/data/kernel/trunk/bootloader/uefi4kos/bootia32.efi

если у вас 32-битный UEFI

$ wget https://builds.kolibrios.org/rus/data/kernel/trunk/bootloader/uefi4kos/bootx64.efi

если у вас 64-битный UEFI

Вы, естественно, можете скачать оба бинарника, чтобы KolibriOS могла запуститься на компьютере с UEFI другой битности.

$ wget https://builds.kolibrios.org/rus/data/kernel/trunk/bootloader/uefi4kos/kolibri.ini

скачаем файл конфигурации загрузчика

$ wget https://builds.kolibrios.org/rus/data/kernel/trunk/kolibri.krn

скачаем ядро системы (собранное специально для загрузки в режиме UEFI)

$ wget https://builds.kolibrios.org/rus/data/data/kolibri.img

скачаем основной (минимальный) образ системы

Итак, мы скачали минимальную сборку системы — образ дискеты и UEFI-загрузчик. Теперь поставим всё это на диск.

$ mkdir mnt

создадим папку, куда примонтируем наш диск

$ sudo mount /dev/sdb1 mnt

монтируем наш раздел в папку mnt

Создадим необходимые папки:

$ sudo mkdir mnt/EFI

$ sudo mkdir mnt/EFI/BOOT

$ sudo mkdir mnt/EFI/KOLIBRIOS

Скопируем файлы:

$ sudo cp bootia32.efi mnt/EFI/BOOT

если у вас 32-битный UEFI

$ sudo cp bootx64.efi mnt/EFI/BOOT

если у вас 64-битный UEFI

$ sudo cp kolibri.krn mnt/EFI/KOLIBRIOS

$ sudo cp kolibri.img mnt/EFI/KOLIBRIOS

$ sudo cp kolibri.ini mnt/EFI/KOLIBRIOS

Обратите внимание, что папки EFI и EFI/KOLIBRIOS обязательно должны существовать. Папку EFI/BOOT не обязательно называть BOOT, это делается для того, чтобы не было проблем с запуском. Файлы загрузчика bootia32.efi и/или bootx64.efi можно расположить как в EFI/KOLIBRIOS, так и в любой другой папке в EFI (но учтите, что, вероятно, вам понадобится добавить загрузочную запись в настройках BIOS или вручную запускать бинарник).

В итоге

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

$ sudo umount mnt

Шаг 4: установка файлов системы прямо на диск

Для начала определимся, что нам нужно: минимальная сборка на диске или минимальная + расширенная. Если нужна минимальная + расширенная, то у вас два варианта:

  • скачать kolibri.raw, примонтировать его и достать файлы оттуда
  • скачать kolibri.iso, скопировать файлы из папки kolibrios в заранее подготовленную минимальную сборку.

Выбрав первый вариант, переходите к способу 1 шага 3. Делайте всё, кроме установки загрузчика (мы его уже поставили).

Второй вариант должен быть понятен. kolibri.iso находися всё там же: Скачать KolibriOS. По сути все действия для получения доступа к нужной папке (монтирования ISO) сводятся к выполнению действий, описанных в способе 1 шага 3 (разве что, вы работаете не с .raw, а с .iso; команды losetup и partprobe не потребуются, монтируйте распакованный kolibri.iso напрямую в папку).

Тогда узнаем, как ставить минимальную сборку. Это просто:

$ mkdir imgfiles

$ sudo mount -r mnt/EFI/KOLIBRIOS/kolibri.img imgfiles

предполагается, что диск, куда ставим систему, вы не размонтировали; монтируем образ дискеты только для чтения

Придумаем название для папки, в которой будут располагаться файлы ОС. Допустим, KOS_ROOT.

$ sudo mkdir mnt/KOS_ROOT

создадим её

$ sudo cp -a imgfiles/* mnt/KOS_ROOT

скопируем все файлы минимальной сборки

Мы все скопировали и поставили, теперь можно отключить образ дискеты:

$ sudo umount imgfiles

Шаг 5: настройка загрузчика и информация о параметрах

Загрузчик настраивается путём изменения содержимого EFI/KOLIBRIOS/kolibri.ini.

Мы сразу увидим возможные параметры, как только откроем этот файл. Вкратце:

  • resolution — устанавливает предпочитаемое разрешение экрана (оно должно поддерживаться UEFI вашего компьютера) в формате ДЛИНА*ШИРИНА. Если параметр явно не указан, то разрешение установится максимально возможным из вариантов вашего компьютера.
  • debug_print — устанавливает режим отладки (система будет отображать важную информацию поверх приложений). Варианты: 0 для выключения, 1 для включения.
  • launcher_start — в основном используется для поиска неисправностей: рабочий стол не будет загружаться, последние сообщения системы будут видны на экране. Варианты: 0 для выключения, 1 для включения.
  • mtrr — для настройки большей производительности процессора. Варианты: 0 для выключения, 1 для включения.
  • imgfrom — для указания типа установки и запуска. Варианты: 3 для минимальной сборки без сохранения файлов (система загружается в оперативную памяти), 5 для установленной на диск в специальную папку.
  • syspath — пути к папке с файлами системы в случае установки KolibriOS прямо на диск (с сохранением файлов). Указывается такой путь, какой виден в самой системе (например, в файловом менеджере).

Чтобы настроить загрузку системы из файлов на диске, нужно узнать путь к этой папке. Если вы его не знаете, то:

  1. размонтируйте диск (команда в конце шага 3)
  2. перезагрузитесь в KolibriOS (очевидно, будет запущена сборка без сохранения файлов)
  3. запустите файловый менеджер, найдите эту папку (KOS_ROOT в случае примера) и запомните путь к ней
вы даже можете поменять параметры загрузчика, не перезагружаясь обратно, прямо из KolibriOS

Узнав путь к папке, укажите его в параметре syspath. Параметр imgfrom поменяйте на 5. Всё, вы включили загрузку с файлов на диске. Можете попробовать и перезапуститься.

Обновление системы

Для обновления минимального образа системы рекомендуется (автором инструкции) способ 2 шага 3 из-за простоты и гораздо меньшего потребления трафика.

Обновления системы на данный момент сводятся к тому, что нужно, по сути, переустановить систему (заменить её файлы). Можно, конечно, попробовать обновить только ту часть диска, где располагается загрузчик и образ дискеты, но это в большинстве случаев все равно вынудит обновить (заменить) файлы системы на диске ввиду высокой вероятности нестабильной работы (некоторые компоненты в системе, например, могут быть взаимосвязаны).

Оба режима сразу: BIOS (LEGACY) и UEFI (и x32, и x64 загрузчики)

Установка производится аналогично тому, как собирается Гибридный UEFI/BIOS образ для Flash/HDD (kolibri.raw), доступный для скачивания.

Установка из-под Linux

Подготовка

Убедитесь, что у вас установлен пакет mtools.

Допустим, наше устройство находится в /dev/sdb.

Список необходимых файлов:

Установка

$ sudo parted --script /dev/sdb mktable gpt

создание таблицы GPT

$ sudo parted --script /dev/sdb unit MiB mkpart primary fat32 1 <ОБЪЁМ-1>

создание раздела, где <ОБЪЁМ> — весь реальный объём накопителя (<ОБЪЁМ-1> = <ОБЪЁМ>-1)
Весь реальный объём накопителя (он в мегабайтах) можно вычислить так:
Вызовем fdisk -l /dev/sdb. В конце первой строки выведется количество секторов.
Реальный объём = (количество секторов)*512/1024/1024
Если число дробное, то округлите в меньшую сторону. Вызывайте команду. Если возникнет ошибка, то уменьшите <ОБЪЁМ> на 1. Делайте так до тех пор, пока ошибка не пропадёт (понадобится приблизительно 1-3 вызова).

$ sudo parted --script /dev/sdb set 1 esp on

делаем раздел загрузочным

$ sudo sgdisk /dev/sdb --hybrid 1:EE

$ sudo dd if=mbr of=/dev/sdb bs=1 count=$((0x1b8)) conv=notrunc

$ sudo dd if=mbr of=/dev/sdb bs=1 count=1 skip=$((0x5a)) seek=$((0x1be)) conv=notrunc

делаем таблицу разделов гибридной

$ sudo mformat -i /dev/sdb@@1M -v KOLIBRIOS -T $(((<ОБЪЁМ>-1-1)*1024*1024/512)) -h 16 -s 32 -H 2048 -c 1 -F -B bootsect.bin ::

форматируем раздел, <ОБЪЁМ> всё тот же

Теперь осталось примонтировать раздел нашего диска.

Туда необходимо скопировать содержимое Гибридного UEFI/BIOS образа для Flash/HDD (kolibri.raw; его можно найти по ссылке: Скачать KolibriOS).

Вы всё установили, можете пробовать запускать KolibriOS.