Решил я познакомиться с новым дистрибутивом Linux. Желание возникло из корыстных целей поднять домашний сервер и пробовать запускать на нем различные собственные проекты. Новые знания в Linux, настройка программного обеспечения, программирование - это то, что я буду улучшать.
Arch выбрал потому, что его позиционируют как простой. Простой всмысле без наворотов. Мне он чем-то напомнил SlackWare, но "знактоки" говорят, что он больше Gentoo.
Теперь к деталям. В закромах родины я нашел старую материнскую плату Gigabyte GA-7VT600 c Socket A, оперативу на 1 Гб и видеокарту. Проц Athlon XP 1.2 Ghz, термопасту, корпус и винт пришлось докупить на барахолке. На этоу меня ушло рублей 600.
Скачал с сайта archа дистрибутив и установил его на флешку с помощью unebootin. При загрузке BIOS флешку увидел, но грузитсья с нее не стал. "Видимо старая материнка" - подумал штирлиц. Попробовал переставить в биосе устройства загрузки с usb-cdrom до usb-hdd - безуспешно. Видимо надо разбираться в чем тут причина и я полез гуглить.
Теперь я расскажу о том, что я узнал и как можно создать загрузочную флешку для загрузки на старой материнской плате. Смысл всей эпопей сводится к тому, чтобы флешку сделать дискетой, а дискету любая материнка пока еще видит. Таким образом можно будет загрузиться с флешки. Флешку дискетой можно сделать с помощью команды
sudo mkdiskimage -Mz4 /dev/sdb 128 64 32
здесь MZ4 - параметр, который указывает создать загрузочный раздел. /dev/sdb - этой моя флешка. 128 - это размер радела в мб, 64 32 - это параметры сектора и цилиндров для создаваемой флешки. Не знаю почему они такие, но подозреваю, что они были такие же как и у загрузочных дискет.
Собственно теперь биос увидит флешку как дискету и стартанет с нее, точнее попытается стартануть, но стартануть пока нечего. Напомню, что последовательность загрузки такая: биос, загрузчик, ос. Биос у нас есть, а вот загрузчик надо положить в загрузочный раздел.
syslinux --install /dev/sdb4 - установит загрузчик в раздел под номером 4 устройства /dev/sdb. После этой команды на /dev/sdb4 появится файл ldlinux.sys. Теперь примонтируем /dev/sdb4 в /mnt и убедимся в этом.
mount -t vfat /dev/sdb4 /mnt.
Рядом к загрузчику положим 3 файла:
ядро vmlinuz_i686;
образ файловой системы initramfs_i686.img;
конфигурационный файл загрузчика syslinux.cfg.
Первым стартует загрузчик, загрузчику надо указать на ядро и на образ файловой системы, в которую надо будет переключиться после загрузки ядра. Ядро содержит информацию об оборудовании, о том. как управлять памятью, процессами и т.д. Файловая система нужна для того, чтобы куда-то переключиться, ну в конце концов надо же нам куда-то деться.
В итоге в syslinux.cfg следующие строки:
Default base
label base
kernel vmlinuz_i686
append initrd=initramfs_i686.img vga=normal rw
Default - какую ветку использовать по-умолчанию. kernel - команда для загрузки ядра. append - команда, которая возволяет добавить опции после загрузки ядра. initrd - указывает на образ файловой системы vga=normal - это команда для настройки framebuffer (можно не указывать, но тогда могут быть проблемы с отображением) rw - монтировать на чтение/запись.
arch_boot - архив со всем необходимым
После этого перезагружаем компьютер и смотрим на результат (предварительно в BIOS указав загрузку с USB-HDD или чего-то такого). Итогом должна стать консоль с приглашением ввести реквизиты для входа в систему.
Мне очень помогла статья этого мужика .
Прошлые записи
- Комната призвания
- Разбираемся с Coroutine в Kotlin - часть четвертая
- Разбираемся с Coroutine в Kotlin - часть третья
- Разбираемся с Coroutine в Kotlin - часть вторая
- Разбираемся с Coroutine в Kotlin - часть первая
- Отпуск длинною в год
- Подходит ли data class для JPA Entity?
- События как источник правды или как я в стартапе участвовал
- Код 2015 против 2023
- Jvm Internals - Перевод
- Мозг против живота или насколько трудно управлять своей жизнью