суббота, 13 декабря 2008 г.

Установка Ubuntu с жесткого диска / installing from hdd without cdrom

Ubuntu Beginners / Новичкам в Ubuntu: Установка Ubuntu с жесткого диска / installing from hdd without cdrom

Довольно давно я пользуюсь archlinux. Несколько месяцев назад, перед летом, передо мною встала задача установки Ubuntu Feisty 7.04 с винта, без использования CD-RW, так как оного не было. А образ спокойно себе лежал на винте. И сел я читать бубунтскую документацию на предмет "Как установить Ubuntu с винта, без использования CD-ROM, имея на борту другой работающий линукс". Повторяю - имея на борту линукс, а не виндовс. Так вот, оказалось, что это возможно и крайне просто.

Только вот статью я начал писать давно, и скриншоты тоже делал давненько, а теперь, когда вышла Ubuntu 7.10 Gutsy Gibbon - все это переписывать, перерисовывать, перекачивать и тем более перепроверять, что все работает, мне, честно говоря, впадлу. Поэтому у вас будет просто интересный полуакадемический пример, дальше включаем мозги, если надо.

Перед началом предупреждаю: абсолютным новичкам будет не интересно. И еще - статья основана на разделе "D.4. Installing Ubuntu from a Unix/Linux System" документации по установке, входящей в состав серверного диска Ubuntu 7.04, файл apds04.html. Всё, предупредил...

Реализация

в общем, опуская далее изложенные подробности, процесс будет такой:
  • Естественно, для всего этого нам понадобится уже скачанный iso образ нужной версии Ubuntu. Но не всякий образ, как показывает практика, для такой задачи подходит. Работает либо alternate, либо server сборка. А desktop не подходит. Почему точно, не знаю, но подозреваю, что из-за отсутствия пакетов debian-installer-а на десктоп варианте диска. В общем, сначала качаем образ.
  • Дальше подготавливаем раздел для инсталляции будущей Убунты. Не забываем, что своп ей тоже нужен (если его нет), что её корневому разделу нужно около 2GB пространства, думаем, какую файловую систему создать в будущем корне, придумываем и создаем;
  • Инсталлим в свою рабочую линукс-систему дебиановский инсталлер debootstrap, с помощью которого пройдет установка базовой бубунты на созданный для неё раздел;
  • Чрутимся внутрь нового раздела в базовую среду, настраиваем fstab, networking, юзера, судо, ставим ядро и что нибудь еще, если очень надо, например ядерные модули;
  • В свой бутлоадер добавляем строку загрузки в убунту на созданный раздел, в частично настроенный корень.
  • Перегружаемся в убунту, чтобы попасть в полноценную консоль, загруженную родным ядром, ставим ubuntu-desktop, который сносит нафиг тщательно продуманный fstab :) , загружаем gdm и имеем перед собой красивый гномовский логин;
  • Логинимся, смотрим на красоту, ощущаем счастье от собственной значимости и шаманской смекалки;
  • Особо ушлые чпокают бутылочкой пива и закуривают ароматный табачок.

Подробное описание:

  • Подготовка раздела. Ищем или создаем раздел, на который хотим ставить Ubuntu. У меня для этой цели уже отведен hda4 - 10 Gb. На нем будет жить будущая Убунта.

    Так же нам понадобится swap, для него выделен hda2 - 500 Mb, своп я буду использовать тот же, что и для текущей рабочей системы, мне его не придется пересоздавать (вы можете создать отдельный раздел для убунтовского свопа, если вам нужно).

    После того, как нашли или выделили раздел под корень (который у меня hda4), на нем нужно создать файловую систему и смонтировать в некую рабочую директорию, например /newubuntu. По моим предпочтениям предлагаю создавать reiserfs для корневой системы.

    На этом же этапе в документации предлагают смонтировать все части, которые будут нужны в будущей файловой системе, у меня таких отдельных частей, крайне необходимых для базовой работы, только /home раздел, который я опять буду использовать свой, рабочий, существующий /home на hda3 разделе. Итак:
    ## под рутом или sudo в терминале: #mkfs.reiserfs /dev/hda4 #mkdir /newubuntu #mount -t reiserfs /dev/hda4 /newubuntu #mkdir /newubuntu/home #mount -t ext3 /dev/hda3 /newubuntu/home/
  • Установка debootstrap. Для начала, нужно найти и выкачать его для вашей архитектуры (i386, amd64, powerpc или sparc) из пула убунтовских дебутстрапов. Выкачать нужно в еще одну некую директорию (у меня /home/archafon/dbstr), в которой распаковать и из которой установить. На текущий момент я подобрал данную версию пакета: debootstrap_1.0.1~feisty1_all.deb.

    Кроме того, для распаковки deb-архива понадобится утилита ar, которая в моем дистрибутиве была найдена в пакете binutils, так что полагаю, она есть и у вас. Приступим:
    #mkdir /home/archafon/dbstr #cd /home/archafon/dbstr #wget http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.1~feisty1_all.deb ## распаковка содержимого deb-архива #ar -x debootstrap_1.0.1~feisty1_all.deb #cd / ## и далее под рутом или под sudo ## для установки содержимого пакета в свою текущую систему #zcat /home/archafon/dbstr/data.tar.gz | tar xv 
    Теперь инсталлятор убунты debootstrap успешно установлен в нашу систему. Можно приступать к следующему шагу.
  • Установка базовой среды для будущей системы Ubuntu. Для начала нам нужно подмонтировать куда-нибудь скачанный iso образ Ubuntu, чтобы debootstrap из него установил базовую систему. У меня он лежит в ~/data/iso/ubuntu-7.04-server-i386.iso, а смонтирую я его в /mnt/cd
    ## под рутом или sudo в терминале #mount -o loop /home/archafon/data/iso/ubuntu-7.04-server-i386.iso /mnt/cd 
    Далее запускаем debootstrap, рассказывая ему о своих параметрах:
    - архитектура (в моем случае i386).
    - имя устанавливаемого дистрибутива.
    - путь, куда это все устанавливать.
    - путь, откуда брать установочные пакеты.
    ## под рутом или sudo в терминале #/usr/sbin/debootstrap --arch i386 feisty /newubuntu file:/mnt/cd/ubuntu 
    Во время удачной установки вы должны видеть довольно обширный список устанавливающихся пакетов. Этот процесс занимает около минуты-двух, и в завершение вы должны увидеть важную фразу: Base system installed successfully - на скриншоте выделено зеленым цветом.

    Еще на этом же скрине видно одну неудачную попытку установки server сборки. Это из-за того, что первая неудачная попытка установки сборки desktop диска оставила после себя несколько директорий в /newubuntu, которые я просто не подумал сразу почистить. Естественно, оставляю в живых свой примонтированный /newubuntu/home, и уже после этого пытаюсь запускать debootstrap на server сборке начисто. Не повторяйте моих ошибок :)
  • Настройка базовой среды. Настал момент первой истины. Чрутимся внутрь будущей убунты. Теперь нашы задачи:
    • создать fstab и прописать в нем все нужные маунты.
    • Настроить console-setup для клавиатуры.
    • Настроить сеть: /etc/network/interfaces, /etc/resolv.conf, /etc/hostname, /etc/hosts и
    • Установить ядро.
    ##из-под рута #LANG= chroot /newubuntu /bin/bash ## создаем fstab #vim /etc/fstab 
    ## Обязательные виртуальные файловые системы #proc /proc proc defaults 0 0 #sys /sys sysfs defaults 0 0 ## Наши винты и своп #/dev/hda2 swap swap defaults 0 0 #/dev/hda4 / reiserfs defaults 0 1 #/dev/hda3 /home ext3 defaults 0 2 ## Это CD-Rom и флешка, чтоб не париться потом /dev/cdrom /mnt/cd iso9660 ro,users,noauto,unhide,utf8 0 0 /dev/sda1 /mnt/flash vfat iocharset=utf8,codepage=866,users,noauto 0 0 ##остальное, если надо, добавлю потом
    #mkdir /mnt/cd /mnt/flash
    Теперь вручную подключим sys и proc для дальнейших действий.
    #mount -t proc proc /proc #mount -t sysfs sysfs /sys 
    Следующий шаг, настройка консоли - клавиатура, раскладки, кодировка и шрифт в консоли:
    #dpkg-reconfigure console-setup
    Настраиваю сеть. Для этого, грубо говоря, создаю файлы /etc/network/interfaces, /etc/resolv.conf, /etc/hostname, /etc/hosts, в которые копирую содержимое соответствующих файлов из текущего рабочего линукса. Единственное, в моем арче нет первого файла :) но это не страшно. Примеры настройки для убунту можно посмотреть через zcat /usr/share/doc/ifupdown/examples/network-interfaces.gz. Для моего случая я имею:

    /etc/network/interfaces
    ##обязательные настройки #auto lo #iface lo inet loopback  ##DHCP кабельный модем, смотрящий в интернет #auto eth1 #iface eth1 inet dhcp  ##Обычная сетевая карточка, связанная сетевым шнурком с ноутбуком #auto eth0 #iface eth0 inet static #     address 192.168.0.1 #     netmask 255.255.255.0 #     broadcast 192.168.0.255 
    /etc/resolv.conf
    ## Это мои DNS-ы, на удивление, файл создался с содержимым! Да еще и правильным. #search voliacable.com #nameserver 82.144.192.130 #nameserver 82.144.192.131 #nameserver 82.144.192.32 #nameserver 82.144.192.30 
    /etc/hostname - Напишите внутрь всего одно слово, имя вашего убунту. Мой будут звать Juggernaut, почему бы и нет...

    /etc/hosts - имена известных адресов:
    127.0.0.1   localhost localhost Juggernaut


    С сеткой покончено. Теперь нужно настроить /etc/apt/sources.list. Если после (успешной) установки вы собрались все ставить через интернет, оставьте файл как есть, а лучше допишите дополнительные репозитории. На данный момент его содержимое довольно убого:
    deb http://archive.ubuntu.com/ubuntu feisty main
    Если же планируете использовать образ диска и дальше, давайте слегка подкрутим настройки. Но прежде позаботьтесь, чтобы образ был виден из убунты, например, был в подключенном /home, как у меня. Сделать нужно следующее. Просто пишем в убунтовской консоли, то есть там, куда мы зачрутились:
    #mkdir /cdrom; #apt-cdrom add 
    На предложение "Please insert a Disc in the drive and press enter" открываем еще одну консоль и чрутимся в убунту опять. Там пишем:
    #mount -t iso9660 -o loop /home/archafon/data/iso/ubuntu-7.04-server-i386.iso /cdrom 
    Ну и дальше редактируем sources.list и оставляем только нужное, либо интернет, либо диск, который придется маунтить всякий раз в /cdrom. Теперь нужно сделать apt-get update для обновления списка пакетов.

    И - основной шаг - ставим ядро. Это вообще просто.
    #apt-cache search linux-image
    Из полученного списка выбираем нужный пакет и ставим. Я ставлю linux-image-2.6.20-15-generic
    #apt-get install linux-image-2.6.20-15-generic
    В один момент инсталлятор спросит, хотим ли мы прервать установку ядра (Do you want to abort чего-то там?) Жмем "НЕТ", не хотим abort, и тогда ядро нормально установится.

    Последние шаги :) Добавляем юзера, создаем группу admin, пропихиваем юзера туда и разрешаем ему администрировать комп через sudo:
    #adduser jugger #addgroup --system admin #adduser jugger admin #visudo ##Добавляем в конец файла: #%admin ALL=(ALL) ALL 
    В свой бутлоадер, в текущем работающем линуксе, из которого вы это все делали, добавляем строку для загруки в убунту. В grub я это делаю так:
    #vim /boot/grun/menu.lst ##И добавляю в конец файла строки, в соответствии с именем того ядра, которое установил: # Ubuntufeisty #title  Ubuntu Feisty #root   (hd0,3) #kernel /vmlinuz root=/dev/hda4 ro vga=773 #initrd /initrd.img 
  • Теперь настал момент последней истины.

    ПЕРЕГРУЖАЕМСЯ в Ubuntu!

    Логинимся созданным юзером и устанавливаем ubuntu-standard
    #sudo apt-get install ubuntu-standard

    Это был последний шаг. Собственно, теперь все зависит от вас. Если вы делали установку с alternate диска или прописали в sources.list выход в интернет, а не на образ, можно ставить ubuntu-desktop или kubuntu-desktop, или xserver с fluxbox-ом... Все зависит от желания и умения.

    Ну а я после перезагрузки в убунту выловил первый же косяк - с русскими буковками в консоли совсем не сложилось. Наверное, не правильно настроил console-setup. Tак что мне косяки, а вам удач в искусстве настройки linux.

Написано libc6 в 00:33

1 комментарий:

Анонимный комментирует...

А просто есть где нибудь инфа как с жеского поставить убунту, ну нет у меня и первой никс на винте, нигде нет доходчивой инфы!