четверг, 5 февраля 2009 г.

Не грузится Linux. Совсем.

Довелось мне однажды ставить Linux на относительно новое железо. Так как заказчику нужен был упор на стабильность и безопасность, и чтобы всё новое и свежее, я выбрал свой любимый на тот момент дистрибутив Gentoo. Плюсы очевидны только для меня как для установщика.
Ну.. в качестве показателя шустрости железа я приведу такой довод. Ядро (2.6.27) с нуля, сконфигуреное практически по дефолту (отключено только действительно ненужное, типа Wi-Fi..), собралось за 5 минут real. В общем это двуглавый Intel, 2G оперативы (под офисный сервак то!) и SATA-диск на интеловой матери. Стоит обратить внимание на последнее.
Итак, собрав прокси с ограничителями на пользователей, файл-сервер, DNS, апач, почтовик и симпотишную обёртку в виде фреймбуфера на основе fbcondecor (красоты ради) внутри VirtualBox, я таки заделал эдакую Stage4 для заказчика. И не с голыми руками, а с флешкой со всем добром отправился к админу заказчика претворять заказ в жизнь. Винт будущий подцепили к его компу, переразбивка, распаковка стадии.. всё по хэндбуку, который уже в памяти.. Загрузка была успешной; до такой степени, что пестрота разноцветной будущей серверной консоли повергла админа в восторг.

fdisk показывал примерно следующее:
office-server / # fdisk -l

Диск /dev/sda: 8589 МБ, 8589934592 байт
255 heads, 63 sectors/track, 1044 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd8bdc080

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 1 13 104391 83 Linux
/dev/sda2 14 75 498015 83 Linux
/dev/sda3 76 1044 7783492+ 83 Linux

И вот тут начинается интересное.. прибывает наконец остальное серверное железо, подставляется этот уже готовый винт.. и.. опа! Интеловая мать говорит, что загрузочных дисков не видит. Вообще.
Windows тут же загружается без проблем..
С десяток раз перепроверил grub.conf. Для полноты картины использовал даже menu.lst. Было решено отдать в жертву стопроцентно рабочий с этой мамкой винт (см. выше про Windows). Винт был переразбит, стадия распакована, загрузчик установлен.. и опять прежнее сообщение биоса об отсутствии загрузочных дисков. Тут я понял, зреть нужно в корень и не грешить на мать.

Сам fdisk мне подсказал:
office-server / # fdisk /dev/sda

Количество цилиндров для этого диска установлено в 1044.
...

Команда (m для справки): m
Действие команды
a переключение флага загрузки
b редактирование метки диска bsd
Собственно тут я вспомнил про активность разделов WIN95 (помните же когда Windows старенькие не грузились без этой опции). Раздел /boot был помечен как загрузочный:
Команда (m для справки): a
Номер раздела (1-4): 1

Команда (m для справки): p

Диск /dev/sda: 8589 МБ, 8589934592 байт
255 heads, 63 sectors/track, 1044 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd8bdc080

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 75 498015 83 Linux
/dev/sda3 76 1044 7783492+ 83 Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

Синхронизируются диски.
office-server / # reboot
И вуаля! Биос тутже сдался грабу.
Мораль сей сказки такова. Новое всё-таки есть хорошо забытое, запатченое, переработанное и заапдейченое старое. Так что если таковые грабли у вас заведутся - LiveCD вам с помощь!

воскресенье, 25 января 2009 г.

PPPoE клиент на dot1q саб-интерфейсе cisco

Прежде всего я бы рекомендовал начать чтение с этой статьи, которая собственно ответит уже на многие вопросы. Здесь же мы будем немного расширять наш кругозор в построении сетей побольше. Например, когда у нас несколько провайдеров, к которым подключение производится через PPPoE. Допустим, у нас Cisco 871 (или аналогичная). Fa4 здесь можно поделить на сабинтерфейсы и таким образом разделить трафик на несколько провайдеров. Необходимым условием в данном случае будет наличие управляемого коммутатора, способного разделить dot1q-трафик по провайдерам.
И вот тут подключение к одному (и тем более нескольким) из них может происходить по PPPoE, что сразу же создать проблему. На сабинтерфейсе нельзя поднять клиента PPPoE.
Это ограничение, наложенное самой Cisco. Подробнее - на сайте Cisco: PPPoE Over IEEE 802.1Q VLANs -> Restrictions.
Однако у меня получилось сделать оную фичу на VLAN-интерфейсе.
Например, ту же 871-ю циску можно развернуть наоборот: Fa4 будет работать как LAN, Fa0-3 - Как WAN ;-)
И можно сделать нечто, вроде:

!
interface Vlan102
no ip address
pppoe enable
pppoe-client dial-pool-number 1
!
типа того..
Для этого потребуется, признаюсь конечно, не физический FastEthernet, а логический VLAN интерфейс, что возможно только на цисках со встроенным свичом (или соответствующим *ESW-модулем).
И ещё стоит обратить внимание, что не все модели позволят создать интерфейс interface VLAN 2:
850-я серия и ранее - не позволяют;
870-я серия - требует наличия IOS с набором возможностей Plus и выше (Plus Feature Set: Advanced IP Services/Advanced Enterprise Services).
(почему?)
Новые (2009):
860-я серия - максимум 2 VLAN;
880-я серия - максимум 2 VLAN или 4 при наличия лицензии Advanced IP Services (о этих новых моделях я расскажу в следующий раз).

Удачи!