eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2012-10-30 07:47 pm

Руководство криворукого установщика linux

Для начала настрою рабочий компьютер, чтобы он работал в качестве шлюза моего ноутбука. Сначала - правила udev, чтобы сетевые карты не "прыгали":
cat /etc/udev/rules.d/net.rules

KERNEL!="eth*", GOTO="end-of-file"
SUBSYSTEM=="net", ATTR{address}=="1c:6f:65:3e:9f:ab", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}!="1c:6f:65:3e:9f:ab", NAME="eth1"
LABEL="end-of-file"

Вносим изменения: из rc.conf удаляем информацию о сетевом соединении. В секцию DAEMONS /etc/rc.conf добавляем net-profiles и удаляем network Добавляем в /etc/conf.d/netcfg строчку
NETWORKS=(lan0 lan1)

В /etc/network.d/interfaces создаем два файла, lan0:
CONNECTION='ethernet'
DESCRIPTION='Static IP LAN main'
INTERFACE='eth0'
SKIPNOCARRIER='yes'
IP='static'
ADDR='192.168.3.225'
NETMASK='255.255.254.0'
BROADCAST='192.168.3.255'
GATEWAY='192.168.2.11'
DNS=('192.168.2.111' '192.168.2.11' '8.8.8.8')
и lan1:
CONNECTION='ethernet'
DESCRIPTION='Static IP LAN'
INTERFACE='eth1'
SKIPNOCARRIER='yes'
IP='static'
ADDR='192.168.99.1'
NETMASK='255.255.255.0'
BROADCAST='192.168.99.255'

После этого бился я бился, но поднять не получалось. Перезагрузился. Получил:
ifconfig
eth0: flags=4163  mtu 1500
        inet 192.168.3.225  netmask 255.255.254.0  broadcast 192.168.3.255
        inet6 fe80::1e6f:65ff:fe3e:9fab  prefixlen 64  scopeid 0x20>link>
        ether 1c:6f:65:3e:9f:ab  txqueuelen 1000  (Ethernet)
        RX packets 4890  bytes 2857572 (2.7 MiB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 155  bytes 30158 (29.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
отсутствие eth1 и матюги при загрузке:
Interface eth1 does not exist

ОК, идем сюда и ищем vendor id своей карты:
lspci -n -s 05:04.0
05:04.0 0200: 10b7:9200 (rev 74)
(05:04.0 я узнал из выхлопа lspci без параметров). Видим по ссылочке строчку:
vendor: 10b7 ("3Com Corporation"), device: 9200 ("3c905C-TX/TX-M [Tornado]")
т.е. нужен модуль 3c59x, который и так загружен. Однако, lspci -k не показал, что карточка использует какой-то модуль ядра.
Сделал rmmod 3c59x && modprobe 3c59x, глянул lspci -k - опять фигвам. Зато dmesg показал:
[  897.156294] 3c59x: Donald Becker and others.
[  897.156307] 0000:05:04.0: 3Com PCI 3c905C Tornado at ffffc90005624000.
[  897.156318] 3c59x 0000:05:04.0: setting latency timer to 64
[  897.166991] *** EEPROM MAC address is invalid.
[  897.166994] 3c59x: vortex_probe1 fails.  Returns -22
[  897.167003] 3c59x: probe of 0000:05:04.0 failed with error -22

Здесь набрел на подобную проблему. Но это было давно. Значит, на баг забили совсем.
Заменил нерабочую из-за кривого (а уже ведь 7 лет прошло) модуля ядра сетевушку на dlink. После пляски с бубном (я менял правила udev в надежде, что карта заработает, а перед выключением забыл все восстановить, после загрузки карты поменялись местами и udevadm'ом я их "развернуть" не смог) сетевушки заработали, как надо.

Далее - настраиваем сеть.


Для начала - разрешаю проброс:
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
А теперь - попытаюсь при помощи гугла сделать проброс.
Разрешение прохода пакетов с "внутренней подсети" наружу:
iptables -t filter -A FORWARD -p all -s 192.168.99.0/24 -d 192.168.2.0/23 -j ACCEPT
Настраиваем подмену адреса отправителя (чтобы снаружи все было ОК):
iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -d 192.168.2.0/23 -j SNAT --to-source 192.168.3.225
Нормально ли все - узнаю позже.


Устанавливаем минимум gentoo


Для начала открываем учебник.
Качаем установочный образ:
wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3/install-amd64-minimal-20121013.iso
Записываем на флешку:
dd if=install-amd64-minimal-20121013.iso of=/dev/sdb1 bs=10M

Включаем бук и по F10 заходим в биос и настраиваем загрузку с флешки. Фигвам. Не помогает. На ЛОРе обратили внимание на косяк, правильно сделать так:
dd if=install-amd64-minimal-20121013.iso of=/dev/sdb bs=10M

Сделал. Все равно фигвам. На ЛОРе узнал, что у gentoo не существует готовых установочных образов.
ОК, в жопу gentoo. Пытаемся ставить дебиан.


Ставим дебиан


Качаем:
wget http://http.us.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/mini.iso

Загружаю: сразу получаю меню, выбираю "установка", далее - язык и т.п. Потом дебиан попытался получить IP по dhcp. Что не вышло, понятное дело. Настраиваю вручную:
IP 192.168.99.2
mask 255.255.255.0
gate 192.168.99.1
DNS 192.168.3.111
далее - еще кое-какие настройки (сервер и т.п.), прокси...
Пошла проверка зеркала архива...
Сеть не пошла. Блин!
Идем в гугол... Добавляю:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
на всякий случай в настройках установщика дебиан меняю DNS на 192.168.99.1. Тоже ничего. Оказалось, что я забыл прописать этот интерфейс в настройках shorewall. Добавил просто
ACCEPT	loc	net
ACCEPT	net	loc
в /etc/shorewall/rules, и все заработало. Строчка
loc     eth1    detect
в interfaces уже была.

Итак, возвращаемся к установке дебиана. На стадии проверки все прошло нормально и пошла загрузка доп. компонентов. Далее был спрошен пароль рута и т.д., и т.п.
Потыкался, в общем, я в дебиане, и понял, что лучше ставить ту систему, к которой ты привык. А так - я даже не понял, как в этом дебиане снести всякую дрянь, вроде гнома, nouveau и прочего.


В общем, арч.


Установку я буду делать со старого образа, надеюсь, проблему с кривыми симлинками, удастся избежать легкой ценой. С нового грузиться не хочется, т.к. по слухам он сильно испоганился.
В процессе установки опять были ошибки конфликта пакетов. Установив загрузчик, я ничего хоршего не получил. Пришлось опять грузиться с флешки.
Пришлось воспользоваться в консоли pacman -Rsc, чтобы удалить практически все, что установил до этого - лишь бы не трогать уже сохраненные пакеты (форматирование бы убило все нафиг).
И опять какая-то фигня получилась, но система по идее установилась, поэтому после перезагрузки, когда я попал в меню груба, я ввел параметры из своего menu.lst и после ввода boot система загрузилась. Правда, система попыталась использовать сраный nouveau, который, естественно, упал, и я получил мелкие буковки и низкую яркость.
Логин рута был успешен (т.к. пароли-то я не задавал).
Далее мне понадобилось поставить sshfs, чтобы не качать уйму пакетов, а использовать пакеты с рабочего компьютера. Однако, оказалось, что в полученной системе даже rc.conf не было!
ОК, качаем на флешку, заодно туда же пихаем все пакеты, чтобы удобней было.
Сбрасываю все на бук, запускаю pacman -S mc и получаю ошибку, мол, надо ключи инициализировать. ОК:
pacman-key --init
(зависло) Ctrl^C
pacman -S mc
фигвам
ОК, смотрим pacman.conf - действительно, кривой. Правим (добавляем SigLevel = Never). Попутно материмся на долбаный vim.
После правки mc установился! О счастье! Теперь у меня есть mcedit!!!

Ставим еще sshfs, чтобы не забыть (правда, пока что она не нужна, но позже может пригодиться). Попутно выполняю установку кое-каких пакетов и настройку rc.conf.
Обнаружил, почему потускнел экран: функциональные клавиши работают задом наперед: если на нее просто нажмешь, она не работает, а если с FN, то работает. Вот такой идиотизм. Чего-нибудь вроде FNlock я не нашел, увы.
После установки initscripts и выполнения /etc/rc.d/network start, ноутбук почему-то завис. После перезагрузки отвалилась клавиатура. Возможно, перегрелся бедолага.
Подправил менюшку grub'а, заменил новоявленный пустой rc.conf на недавно правленный, поставил yaourt и еще кое что. Перезагрузился уже нормально, но сеть не полностью работает: надо подправить resolv.conf, wgetrc и воткнуть переменные прокси в /etc/profile.d/proxy.sh.
ОК, поковырялся - вуаля! yaourt -Syua заработал. Отлично. Теперь можно копировать все настройки с рабочего компьютера, доустанавливать нужные пакеты и, можно сказать, работа почти закончена. Почти - потому что мне еще надо настроить чертов bumblebee. Но я сегодня еще не завтракал, поэтому пора бы идти домой.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org