пятница, 6 июля 2012 г.

Моя "идеальная" Boot загрузочная флешка с установкой CentOS 6.2 и LiveCD/DVD/Flash

Задачи:


1) Сделать boot загрузочную флешку УНИВЕРСАЛЬНОЙ (на любую флешку можно было залить и на любой ОС прочитать и записать)

2) Запихнуть на флешку установку CentOS и загрузку LiveDVD или LiveCD с ним (LVM разделы видят только RedHat-подобные системы)

Выражаю благодарность в написании статьи любимому торрент-трекер nnm-club.ru, всем пользователя указанных мною сборок и особенно FILTH2012 ® , conty9SunOK.




Используемые средства:

ОС с которых произвожу все манипуляции:

1) Ubuntu 12.04 x86_64
2) Win 7 Ultimate x86_64

Флешки:

1) Kingstone DT 160 (32GB)
2) Kingstone DT Ultimate G2 (64GB)


Сборки используемые для флешки:

Собирать целиком флешку под себя не стал, удалось все-таки найти самый оптимальный для меня вариант сборки, хоть и с трудом.

1) За основу взял MultiBoot Flash Filth Edition 2012 v3.1 16 Гб
2) И добавил Мультизагрузочный 2k10 DVD/USB/HDD v.2.5.4 [Eng/Rus]



Начну с небольшой теории почему сделал так, а не иначе.

1) Опредиляемся с файловой системой.


Я выбрал FAT32!!!

Какие варинаты вообще были и какие у них плюсы и минусы:
а) FAT32
Плюсы:
"+" - видим в любой ОС без выкрутасов и доп ПО (включяя используемые на флешке, бывают моменты когда не хочет система ставиться или запускаться если это, к примеру, NTFS.)
"+" - отсутствует журналирование (является преимуществом при работе с накопителями, имеющими ограничение на количество циклов записи)

Минусы:

"-" - Максимально возможный размер файла для тома FAT32 — ~ 4 ГБ — 4 294 967 295 байт (232-1 — 4 294 967 295 байт)

б) NTFS
Плюсы:
"+" - Максимальный размер файла 16 ЭБ (дохрена в общем :) )


Минусы:
"-" - Журналируемая
"-" - Некоторые системы не видят изначально, к примеру, могут возникнуть проблемы с запуском LiveCD основаных на Linux системах или DOS.

в) EXT2

Плюсы:
"+" - Максимальный размер файла 16 ГБ
"+" - отсутствует журналирование


Минусы:
"-" - Windows изначально не видит, нужно софт доставлять (как минимум проще включить поддержку FAT32 на linux-e, чем на финде искать и качать каждый раз проги.)

Итог:

Решающим фактором моего выбора стало два момента:
а) Винду и линуксы я разворачиваю с исо образов РАСПАКОВАННЫХ или размером меньше 4GB (максимальный размер файлика отпал) через софтинку с LiveCD 2k10 (WinNTSetup, пока ни разу не подвела, разворачивал разные системы)

б) Флешку на 64ГБ забиваю на раз, два (Ubuntu, Centos, Windows, Office уже гигов на 16 сами тянут :) ) - на этом этапе пропало чувство кучи неиспользованного места, на которое можно было бы записать БОЛЬШОЙ файлик.

в) Ну и чтобы чувство неиспользованного места окончательно нас покинуло, зарезервируем его для бекапов (Acronis, к примеру, умеет разбивать резервные копии по размеру).


2) Добавляем установку Ubuntu_x86_64 с флешки

а) Создаем на флешке папку куда будем кидать образ убунты:
Например "/_MY/Ubuntu/ubuntu64/"
б) Вытаскиваем из образа убунты два файлика vmlinuz и initrd.lz (находятся в папке "casper") и кладем их в нашу папку "/_MY/Ubuntu/ubuntu64/" вместе с нашим ISO образом.

В наш ubuntu.lst добавляем к примеру так:
title Linux Ubuntu 12.04 LTS AMD64kernel /_MY/Ubuntu/ubuntu64/vmlinuz iso-scan/filename=/_MY/Ubuntu/ubuntu64/ubuntu.iso boot=casper locale=ru_RU quiet splash --initrd /_MY/Ubuntu/ubuntu64/initrd.lz
P. S. добавлять загрузку именно установки,а не запуск LiveDVD нет смысла, установка все равно графическая. А пока системка ставится можно в инете полазить или фильмец глянуть :)


3) Ну и теперь я опишу и приведу пример файлика меню с CentOS 6.2

Принцип добавления CentOS очень прост:
Качаем образ и распаковываем его на флешку в нужную папку. :)

НО, добавить установку напрямую установку Centos-bin-DVD у меня так и не получилось.
Для этого на флешке надо было бы создать еще один раздел с EXT2.
У меня максимум получилось дойти до момента начала установки (до момента появления полоски установки пакетов), дальше он не мог найти пакеты, монтирование в /mnt/isodir ни папки (mount --bind /dir /mnt/isodir ), ни iso образа не помогло.
Разбивать на несколько разделов флешку нет желания ...
а) винда два раздела не хавает
б) Менять бит у флешки для того, чтобы как хард определялась - пропадет универсальность сборки + не факт, что прокатит + не факт что флешка выживет после этого :)
в) Менять драйвера на винде - это на каждом компе надо будет ставить ... лень :)



В итоге решил качнуть netinstall запихнул его на флешку и качнул репозитарий (в нем тоже плюс ... не надо 2 диска DVD объединять) тоже на флешку, чтобы каждый раз не качать. FTP я думаю в любой сетке есть, даже на винде поднимается за 5 минут. Так что не думаю, что возникнут сложности. Т. е. копируем репу на FTP и прописываем к ней путь в меню.


Вот мой centos.lst:


timeout=20
default 0
gfxmenu (hd0,0)/boot/gfx/lin.gz

# Заменить:
# a) пути до папок isolinux и LiveOS
# b) Заменить UUID раздела - UUID=XXXX-XXXX
# c) Заменить метод и директорию репозитария repo=ftp://username:password@host/path.
#    Скачать репозитарий на локальный (ftp к примеру) можно с сайта ftp://ftp.yandex.ru/centos/6.2/os/x86_64/
# Debug информация выводится на 3 консоли (Ctrl + Alt + F3)
# Консоль для ввода команд на 2 консоли (Ctrl + Alt + F2)
# Manual - http://docs.fedoraproject.org/ru-RU/Fedora/12/html/Installation_Guide/ap-admin-options.html#sn-boot-options-installmethod

title CentOS-6.2-x86_64-LiveDVD
kernel /_MY/_Soft/_OS/CentOS/CentOS-6.2-x86_64-LiveDVD/isolinux/vmlinuz0 root=UUID=468F-6556 ro liveimg quiet nodiskmount nolvmmount lang=ru_RU keymap=us live_dir=/_MY/_Soft/_OS/CentOS/CentOS-6.2-x86_64-LiveDVD/LiveOS
initrd /_MY/_Soft/_OS/CentOS/CentOS-6.2-x86_64-LiveDVD/isolinux/initrd0.img

title CentOS-6.2-i386-LiveDVD
kernel /_MY/_Soft/_OS/CentOS/CentOS-6.2-i386-LiveDVD/isolinux/vmlinuz0 root=UUID=468F-6556 ro liveimg quiet nodiskmount nolvmmount lang=ru_RU keymap=us live_dir=/_MY/_Soft/_OS/CentOS/CentOS-6.2-i386-LiveDVD/LiveOS
initrd /_MY/_Soft/_OS/CentOS/CentOS-6.2-i386-LiveDVD/isolinux/initrd0.img

title CentOS-6_2-x86_64-netinstall
kernel /_MY/_Soft/_OS/CentOS/CentOS-6_2-x86_64-netinstall/isolinux/vmlinuz root=UUID=468F-6556 ro liveimg quiet nodiskmount nolvmmount lang=ru_RU keymap=us repo=ftp://username:password@host/path
initrd /_MY/_Soft/_OS/CentOS/CentOS-6_2-x86_64-netinstall/isolinux/initrd.img

title <== Назад в меню
configfile (hd0,0)/menu.lst

4 комментария:

  1. Ubuntu - разрулил толково,
    CentOS - бездарно, а ведь достаточно прочитать
    оффициальное руководство, там все так просто. :)
    tvlm@jabber.ru

    ОтветитьУдалить
    Ответы
    1. Цены бы вам не было если бы конкретно описали добавление CentOS на флешку ... именно на ту флешку на которой уже есть сборка ... т. к. в итоге я на центос забил.

      Удалить
  2. Добрый день.
    У меня 2 вопроса:
    1. Как узнать UUID раздела - UUID=XXXX-XXXX, если флешка на компе с виндой?
    2. Как должен выглядеть centos.lst, точнее цитируемая ниже его часть, в такой ситуации:
    Есть флешка на 8 Гб. На ней установлен Grub (она успешно стартует), В корне создан каталог CentOS, в который распаковано два образа CentOS-6.4-x86_64-bin-DVD1.iso и CentOS-6.4-x86_64-bin-DVD2.iso. Папки LiveOS нет и в помине.
    В menu.lst прописано title Install CentOS 6.4
    configfile /CentOS/centos.lst

    Цитата из centos.lst
    title CentOS-6.2-x86_64-DVD
    kernel /CentOS/isolinux/vmlinuz0 root=UUID=468F-6556 ro liveimg quiet nodiskmount nolvmmount lang=ru_RU keymap=us live_dir=/CentOS/LiveOS
    initrd /CentOS/isolinux/initrd0.img

    ОтветитьУдалить
  3. Дмитрий, этот блог я больше не поддерживаю ... перешел на другой http://blog.qwe123.ru
    0) Эта статья написано примерно год назад ...
    1) В винде я узнавал UUID не помню точно как, НО помню одну замечательную вещь, что определение UUID в винде отличалось от определения его же в linux ... Такчто самый оптимальный вариант загрузиться с LiveCD такого же CentOS
    2) Папки LiveOS нет так как я описывал запуск LiveDVD, а вы качнули полноценный дистрибутив, для установки которого в теории флешку надо разбивать на разделы ... мне такой вариант не понравился и я описал пункт netinstall
    P. S. сегодня я уезжаю в отпуск на 2 недели, так что боюсь сегодня Вам больше не отвечу.

    ОтветитьУдалить