Здесь будут шапка и навигация. Вернуться на сайт.

 

Как поставить на свой нетбук генту по сети

На всех нетбуках есть один минус, отсутствие CD-ROM, решил накидать небольшую статью, как поставить на свой нетбук генту по сети.

1 Настрока BIOS

У меня EEE PC 701 для него
Boot → OnBoard LAN Boot ROM ставим в Enabled

2 Настройка большого брата

допустим у нас сеть 192.168.0.0/24
IP большого брата 192.168.0.4
IP шлюза в инет 192.168.0.1
IP для ноута будет даватся 192.168.0.131
мак адрес ноута AA:AA:AA:AA:AA:AA (как узнать свой мак адрес? когда грузишся по сети загрузчик в биосе ноута говорит мой мак такойто … )

2.1 Ставим DHCP TFTP и загрузчик

emerge -avu net-misc/dhcp net-ftp/tftp-hpa sys-boot/syslinux

2.2 Настройка DHCP

Cоздадим файл /etc/dhcp/dhcpd.conf

default-lease-time 600; 
max-lease-time 7200; 
ddns-update-style ad-hoc; 

subnet 192.168.0.0 netmask 255.255.255.0 { 
    range 192.168.0.131 192.168.0.131; 
    option routers 192.168.0.1; 
    deny unknown-clients; 

    host setup_server { 
         filename "pxelinux.0"; 
         server-name "192.168.0.4"; 
         next-server 192.168.0.4; 
         hardware ethernet AA:AA:AA:AA:AA:AA; 
         fixed-address 192.168.0.131; 
    } 

} 

option option-150 code 150 = text ;
/etc/init.d/dhcpd start

2.3 Настройка TFTP

правим фал /etc/conf.d/in.tftpd

раскоментируем или добавим

INTFTPD_PATH="/var/tftp/"

создаем папку
mkdir /var/tftp/ /var/tftp/gentoo/

незабываем запустить
/etc/init.d/in.tftpd start

2.4 Настройка загрузчика

cp /usr/share/syslinux/pxelinux.0 /var/tftp/
mkdir /var/tftp/pxelinux.cfg

создадим файл
/var/tftp/pxelinux.cfg/default

DEFAULT gentoo 

LABEL gentoo 
        kernel gentoo/vmlinuz 
        append initrd=gentoo/initramfs.cpio.gz 

PROMPT 1 
TIMEOUT 0

Уже можно попытаться загрузится, вы должны увидеть приглашение загрузчика
boot:
осталось дело за малым собрать ядро и загрузочный образ.

3 Подготовка ядра и образа

У меня 64х битный большой брат поэтому я буду делать не большой финт ушами, чтобы собрать необходимое нам ядро и образ для 32х битного ноута.
Эти действия можно делать и если битность систем совпадает, можно на большом брате пересобрать установленное ядро и образ в отдельной папке, но имхо первый способ удобней.

Сделаем небольшую 32х битную подсистему внутри 64х битной.
Это немного похоже на установку генты.
создадим папку

mkdir /var/tftp/gentoo/tmp 

нам понадобится stage3 у меня stage3-i686-2008.0.tar.bz2
скопируем его в /var/tftp/gentoo/tmp/ и распакуем там tar -xpvf stage3-i686-2008.0.tar.bz2
создадим папку

mkdir /var/tftp/gentoo/tmp/usr/portage

прибиндим портежи, если у вас distfiles монтируется отдельно то их тоже стоит прибиндить.

mount --bind /usr/portage /var/tftp/gentoo/tmp/usr/portage

копируем настройки DNS

cp /etc/resolv.conf /var/tftp/gentoo/tmp/etc/

переходим в нашу новую систему

linux32 chroot /var/tftp/gentoo/tmp/ /bin/bash

Я обычно чищу переменные окружения, а то иногда из-за них че нить нехорошее случается.

su -

Ну вот и готова наша 32х битная система для сборки ядра и образа.
Пункты 3.1, 3.2, 3.3 выполняются в ней!

3.1 Ядро

Cтавим ядро.

emerge gentoo-sources
cd /usr/src/linux

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

make menuconfig

главное что должно стоять

General Setup ---> 
      [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support 
      ()    Initramfs source file(s)

Остальное по вашему усмотрению.

компилим, устанавливаем

make ; make install

ядро готово!

3.2 Образ

Тут два пути, можно тупо весь stage засунуть туда и не мучатся, главное чтобы в ноуте оперативки хватило, для stage - 1G, этот метод я опущу он слишком простой.
Итак нам нужен маленький образ корневой ФС, с минимум приложений для начала установки генты на ноуте.

создадим папку для образа

mkdir /tmp/image/

распакуем туда busybox у меня в distfiles последний busybox-1.13.2.tar.bz2

tar -xpvf /usr/portage/distfiles/busybox-1.13.2.tar.bz2 -C /tmp/image/

идем в папку busybox

cd /tmp/image/busybox-1.13.2/

конфигурируем, лично я оставляю все настройки по умолчанию.

make menuconfig

компилим, инсталим

make ; make install

идем в папку образа

cd ./_install/

кое что допиливаем

ln -s ./linuxrc ./init 
mkdir lib 
cp -vd /lib/ld* ./lib/ 
cp /lib/libm.so* ./lib/ 
cp /lib/libc.so* ./lib/ 
cp -dR /dev/ ./dev 
mkdir proc

3.2.1 Небольшие дополнения образа

Для установки генты нам понадобятся утилиты которох нет в busybox
например mkfs.ext3, как её добавить ?
скопируем её в наш образ

cp /sbin/mkfs.ext3 ./sbin/

Это не все, у нее есть зависимости которые тоже необходимо скопировать, посмотрим на них ldd /sbin/mkfs.ext3

        linux-gate.so.1 =>  (0xffffe000) - хитрая библиотека ядра её не копируем. 
        libext2fs.so.2 => /lib/libext2fs.so.2 (0xf7f05000) 
        libcom_err.so.2 => /lib/libcom_err.so.2 (0xf7f01000) 
        libblkid.so.1 => /lib/libblkid.so.1 (0xf7ef7000) 
        libuuid.so.1 => /lib/libuuid.so.1 (0xf7ef2000) 
        libe2p.so.2 => /lib/libe2p.so.2 (0xf7eeb000) 
        libc.so.6 => /lib/libc.so.6 (0xf7dbb000) - это уже копировали выше 
        /lib/ld-linux.so.2 (0xf7f2e000) - это уже копировали выше 

копируем все необходимые библиотеки

cp /lib/libext2fs.so.2 lib 
cp /lib/libcom_err.so.2 lib 
cp /lib/libblkid.so.1 lib 
cp /lib/libuuid.so.1 lib 
cp /lib/libe2p.so.2 lib

и так далее, собираем все что нам может понадобится

3.3 Собираем образ в кучу

(find . | cpio -o -H newc | gzip) > "/boot/initramfs.cpio.gz"

3.4 Последние приготовления

с другой консоли (в основной системе а не 32х битной) копируем ядро и образ в папку tftp

cp /var/tftp/gentoo/tmp/boot/vmlinuz /var/tftp/gentoo/ 
cp /var/tftp/gentoo/tmp/boot/initramfs.cpio.gz /var/tftp/gentoo/

4 Загрузка

В итоге, моя система получилась ядро+образ 5MB - вполне неплохо!
Включем ноут, выбираем загрузку из сети и радуемся.
Замечание, приглашение можно не заметить нажмите пару раз enter, это потому что ядро сыпит все свои сообщения в консоль и »#» бывает трудно найти за всем этим мусором :)

для того чтобы работали некоторые утилиты нужно примонтировать proc

mount -t proc proc /proc

у вас есть ifconfig, есть wget, есть fdisk, есть mkfs.ext3, есть tar, больше ничего и не нужно ;)

Собственно все.


PS:
Не стоит выбирать этот способ если вы первый раз ставите генту, этот способ требует хорошого знания особенностей линукса.

Дополнительные советы

Кое-какие рекомендации (частично навеянные этим мануалом):

  • Ядро можно собрать модульное, и установить модули коммандой make INSTALL_MOD_PATH=«путь_к_образу» modules_install. При этом стоит установить на рамдиск udev и озаботиться его включением в автозагрузку.
  • В п. 3.2 правильнее собирать пакеты коммандой USE=»-* minimal» emerge -avt –root=путь_к_образу пакет1 пакет2…. Необходимые для полноценной работы пакеты в образе - baselayout, wget, busybox, tar, gzip, bzip2, e2fsprogs, sed, awk, grep, procps, shadow. Могут оказаться весьма полезными nano, dhcpcd, reiserfsprogs, reiser4progs, grub, udev. Плюсы такого подхода - не нужно возиться с библиотеками/файлами (кроме нескольких - все тех же ld-linux, librt и т.д., что идут в составе gcc/glibc), и не нужно запускать strip для дебаг-информации в файлах для экономии места - этим озаботился сам emerge.
  • init или симлинк на него должен быть в корне рамдиска - либо указывать в параметрах ядра расположение строкой init=/sbin/init

Если Большой Брат заведомо поддерживает все комманды проца нетбука (а оно обычно так и есть - кроме машин 4-5-летней давности, в частности К7 архитектуры) - следующие советы позволят заметно ускорить установку:

  • Стоит перед компиляцией пакетов обновить portage, gcc и после мир (о переключении версий gcc после обновления - можно почитать здесь). Естессно, не забыть в make.conf исправить архитектуру на pentium-m/prescott (для целеронов-м/атомов соответственно). Либо - еще лучше (хоть и медленнее - хотя чем больше времени прошло от релиза стэйдж3, тем меньше разница во времени) собирать свой stage3 из stage1.
  • Вместо разворачивания релизного stage3, его последующего обновления и пересборки gcc/glibc (что есть весьма длительным мероприятием даже на мощных машинах)- все это можно провести в chroot'е Большого Брата, после чего - запаковать в тарбол и пользовать вместо stage3 при установке. Как вариант - полностью собрать систему на Большом Брате, после чего залить вместо стэйдж3.
 
gentoo_pxe.txt · Последние изменения: 09.10.10 20:54 (внешнее изменение)