bash.im ithappens.me zadolba.li

Linux

9778

Данные — это временно

25 августа 2012, 07:15

Устанавливал я Генту на ноутбук знакомой по её просьбе. Так как Генту — мой основной рабочий инструмент, я с minimal CD выполнил базовую установку и настройку и сразу же поставил иксы вместе с десктопным софтом. В полной уверенности в правильности своих действий я отдал ноут знакомой, не загружаясь в новую систему.

Мой недочёт обнаружился через неделю, когда подруга пыталась выполнить su. Я не запаролил рута (sudo тоже не было установлено), соответственно, система посылала далеко и надолго все попытки повышения привилегий. Что ж, под рукой флешка с PCLinuxOS. Загружаемся, mount, chroot, passwd, reboot и… ничего. Даже загрузчика. Просто девственно чистые разделы файловой системы на винте ноута.

После долгих разбирательств выяснилась моя ошибка. Я примонтировал файловую систему ноута в каталог /tmp в $HOME, который лайв-система посчитала за пользовательский эквивалент /tmp и благополучно вычистила при выключении. Виной всему была лень — лень набирать лишние пути (например, в /mnt), лень сделать umount перед перезагрузкой, лень всё ещё раз проверить перед тем, как отдать ноут.

Никогда не ленитесь проверить работу, даже если навыки доведены до уровня рефлексов.

9751

Доработка напильником на микроскопическом уровне

Сегодня восстанавливал загрузчик после очередной установки «хрюши». Дабы удостовериться в результате до перезагрузки, лазаю по мелким программкам, blkid посмотрел, зашёл в дисковую утилиту.

Поразил меня GParted. При изменении размера раздела есть чекбокс с интереснейшей подписью: «Округлить до цилиндров». Конечно, основы дискового строения я знаю: цилиндры, секторы, кластеры и т. д., но складывается впечатление, что ext4 разбивает на параллелепипеды, а уж потом скругляет.

9746

Танцы с 3G-бубнами

19 августа 2012, 07:15

Есть садящийся нетбук с 3G-модемом. Есть линуксовый комп, на котором модем заводиться отказывается. И есть туча времени, которое надо убить.

Решаю посмотреть ролики известного латышского обозревателя. Батарейки не хватает надолго. В кармане есть Андроид-смартфон, однако великолепные тарифы яйценосного оператора на интернет не распологают к сидению на Ютюбе. Решение очевидно: вставляем симку от модема.

Выясняется, что у кастомной прошивки на основе Jelly Bean есть загадочный глюк: при просмотре Ютюба (неважно, из браузера или из приложения) чётко на 15-й секунде видео смартфон самопроизвольно перезагружается.

Не ленюсь и скачиваю ролики на телефон, дабы воспроизвести MX Player. Один фиг перезагружается! «Это какая-то хреновая магия», — думаю я и вспоминаю про большой комп. Догадались, что я сделал в первую очередь? Естественно, врубил режим модема и полез в интернет…

Когда пол-обзора загрузилось, чувство, что где-то я себя обхитрил, стало невыносимо. Примонтировал SD-карточку телефона и посмотрел.

9739

Балмер улыбался в бороду

17 августа 2012, 07:45

Лето, утро, опустевший парк. Возвращаюсь из командировки и привычно сокращаю дистанцию через тенистые аллеи. В 300 метрах от меня какая-то бабуля в инвалидной коляске застряла на ступеньках, пытаясь преодолеть высокий пандус. Краем глаза замечаю сидящего на скамейке благообразного дедка, прошу его посторожить мои сумки, а сам направляюсь спускать бабусю.

Вскоре возвращаюсь обратно с чувством выполненного долга. Старичок исчез, но вещи на месте. На всякий пожарный проверяю, почему-то достаю ноут и решаю включить… В приводе почему-то начинает шуршать DVD. Какого-то чёрта грузится «семёрка» (её отродясь не было, в поездки я всегда беру бук с SUSE). Догадываюсь извлечь носитель. Ребут — нет, всё равно грузит редмондскую поделку!

В висках стучит. Дождавшись загрузки рабочего стола, лезу в администрирование и лихорадочно ищу разделы с родным Btrfs. Или кто-то подшутил, или проклятый старик залез в мой ноут и оказал медвежью услугу, пока я был отвлечён. Где мой /home?!

Я просыпаюсь в холодном поту и спросонья бегу к ноуту. Загрузка BIOS привычно требует пасс, выплывает сплеш-скрин с хамелеоном и пентаграммы «кед» — всё на месте.

Это был кошмар. Кошмар линуксоида.

9710

Да разгладятся свитера

11 августа 2012, 07:15

История началась с того, что начальство постановило запретить сотрудникам играть в игры и смотреть фильмы на рабочем месте. Реализовать это можно многими путями, но мы нашли новый и попутно обрели огромное количество преимуществ.

Когда план созрел, казалось, безумнее быть ничего не может. Мы поставили на все менеджерские машины CentOS. Нет, пересаживать менеджеров на линукс мы пока не собираемся: это слишком сильное кунг-фу. Вместо этого мы на каждой машине развернули Xen и поставили Windows гостевой системой. Играть на такой машине невозможно — производительности графической системы не хватает. Смотреть фильмы нельзя по той же причине. Зато работать — запросто. USB-ключи от клиент-банков и 1С пробрасываются внутрь, принтеры, не поддерживаемые в линуксе, пробрасываются в гостевую ОС и поддерживаются там, а поддерживаемые поддерживаются и так, чтобы печатать вне зависимости от того, что там пользователь поломал.

Попутно вскрылись и другие преимущества такого решения. Теперь, если компьютер безвременно сломался, мы достаём винчестер и просто вставляем его в новую машину. Никакой переустановки Windows не требуется — более того, не требуется и повторная активация. Нам не нужен TeamViewer: мы можем по VNC подключиться к любому компьютеру, и пользователь об этом не узнает. Мы можем подключиться удалённо к зависшей винде! Мы можем удалённо смотреть этапы загрузки системы, перезагружать, включать и выключать гостевую систему. А ещё у нас есть Live Migration, за счёт которой мы можем заменить компьютер менеджеру за пять минут, пока тот ходит курить. Мы имеем персональный файрвол в каждой машине. Мы можем делать бэкап всей машины целиком, вместе с файлами, драйверами, настройками и программами. Мы даже сделали такую настройку, чтобы браузер запускался из линукса, а настройки и файлы сохранял на гостевой винде. У нас сократилась вирусная нагрузка, мы можем заливать софт на машины простым клонированием рабочих мест, мы можем обслуживать парк машин в фоновом режиме. Мы перестали оставаться на субботу для проведения регламентных работ — теперь достаточно вечера пятницы. Наши волосы стали чистыми и шелковистыми, наши свитеры разгладились, а бороды укоротились.

Коллеги, пользуйтесь!

9693

Если выпить много пива, линукс будет падать криво

8 августа 2012, 07:15

Было у меня две машинки: мощный десктоп с виндой для игрушек и скромный ноутбук с Убунтой для работы. Как-то пили мы пиво и настраивали Убунту. Утром я проснулся, включил обе машины и засел играть в какой-то шутер. Когда меня убили, смотрю — а ноутбук в BSoD упал. Ладно, бывает. Отправил в перезагрузку и пошёл дальше убивать неземных существ.

Отвлёкся, когда ноут снова упал в BSoD. Ещё раз перезагрузил ноутбук и обещал себе присматривать за ним. Загрузка прошла успешно, я усыпил бдительность, и ноутбук снова отвлёк меня синим экраном. Стало интересно: что же с ним не так?

Голова наотрез отказывалась думать после вчерашнего. «Наверное, перегрев», — подумал я и наскоро разобрал ноут. Видимо, такая идея уже посещала меня вчера, ибо пыли не было. «Значит, дело в софте!» — браво решил я и начал грузиться, чтобы получше изучить логи системы.

Когда, загрузившись, я не нашёл ни логов Windows, ни логов приложений, я начал сомневаться в своей адекватности. На всякий случай посмотрел /var/logs. И тут до меня начало доходить: вчера во время распития мы поменяли экранную заставку на казавшийся нам тогда остроумным BSoD-скринсейвер.

Пиво — это не только еда системного администратора, но и отличный способ превратить его во врага самому себе.

9692

Я не буду — мозг дороже

7 августа 2012, 08:15

Я системный администратор. Я знаю SQL и базы данных. Нет, я не буду править в хексе покоцанную базу данных 1С.

Я умею ставить Windows. Я умею использовать кряки и кейгены. Нет, я не буду их использовать. Я вообще сейчас принципиально ставлю только свободное ПО. Хотите Микрософт Офис? Купите его. Дорого? Извините, но ставить вам ломаный я не собираюсь.

Если я настроил вам компьютер, это ещё не значит, что я взял вас на гарантийное абонентское обслуживание бесплатно. И не надо мне звонить в три часа ночи и плакать, что у вас не работает ADSL-модем.

Сгорел южный мост? Меняйте материнку. Я дал вам бумажку с приемлемой для вас конфигурацией. Дорого? Извините. Нельзя ли как-то иначе? Нет, нельзя. Я не буду покупать для вас материнку, а ставить новую буду только за отдельную плату. Не нравится — зовите кого-то другого. Вы не знаете, что такое конфигурация? Покажите бумажку в магазине, консультант всё подскажет. Он за это деньги получает. Я не буду за сто рублей полчаса рассказывать, что такое компьютер и как с ним работать. Купите книжку.

Предприятие настолько бедное, что не может купить серверную ось? Нужен домен, прокси, почта и сайт? Не вопрос — FreeBSD + Samba + OpenLDAP, Apache + PHP + MySQL, Postfix + Postfix Admin, Squid SAMS. Что? Кто всё это потом будет обслуживать? Знаете, проблемы индейцев шерифа не волнуют.

Я знаю, что линукс в нашем райцентре знают человек десять, а «фрю» — человека полтора. Не нравится — ищите специалиста в областном центре. Что? Ему нужна высокая зарплата? Какое совпадение — мне тоже! Поэтому я работаю в областном центре и получаю в пять раз больше, чем вы хотели предложить мне.

Иногда приходится сужать свою специализацию, чтобы спасти свой мозг.

9671

Пляски с бубном под дудку начальства

3 августа 2012, 07:15

Есть у нас на предприятии лазерный принтер формата А3, верой и правдой служащий с конца девяностых. Сам принтер работает без особых глюков, расходники добывать пока удаётся. По нелепому стечению обстоятельств аппарату не хватало одной буквы в конце названия, чтобы иметь свой собственный Ethernet-порт, а поддержка сети ему жизненно необходима ввиду очень разношёрстного и склочного коллектива отдела, в котором он эксплуатируется. Вовремя нужный модуль расширения купить не успели, аппаратные принт-серверы тогда стоили дюже дорого. В результате аппарат оказался подключён к скромному Pentium-233, который в течение какого то времени исполнял роль общественной печатной машинки, а затем был вообще заброшен. Работал комп под управлением Win98, но так как полноценно его никто не использовал, в IT-отдел он попадал только во время эпидемий сетевых червей.

Некоторое время назад случилось страшное: уволился человек, который каждый вечер штатно выключал эту машинку. Остальным сотрудникам было лень возится, и они начали тушить компьютер с кнопки, что в случае системного блока AT означало каждодневное нештатное завершение работы системы. Win98 такие шутки понимал плохо, в результате чего машинка начала приезжать к нам на ремонт с интервалом в пару недель. Неисправности, естественно, однотипные: разрушение файловой системы, разрушение реестра или всё сразу.

Очередной приезд машины сопроводился очень неприятной «телегой» на весь IT-отдел. Объясниться перед руководством оказалось просто, а вот вразумить пользователей не удалось. В результате мне была поставлена задача: сделать так, чтобы всё работало, несмотря на неадекватность пользователей, однако денег на покупку даже самого дешёвого принт-сервера выделено не было.

Задача сводилась к выбору и установки какой-нибудь операционной системы, которая без проблем переживала бы нештатное завершение работы. Просмотрев список специализированных дистрибутивов линукса для принт-серверов, я пришёл к выводу, что ни один из них в полной мере не удовлетворяет имеющимся требованиям: либо слишком старое ядро, в котором не всё ладно с поддержкой USB, либо слишком много понтов, которые были явным излишеством для такой конфигурации. На тот момент жестокой потребности в USB не было, но хотелось бы найти универсальное решение этой задачи, которое можно было бы тиражировать в дальнейшем.

Я отыскал микродистрибутив, занимающий в минимальной конфигурации под 20 МБ, но при этом с полноценной поддержкой сети и возможностью прикрутить CUPS. Установленная система на диске держала только папку BOOT и два архива: в первом корневая файловая система, во втором опциональные модули и файлы настроек. Такая конфигурация позволяла монтировать жёсткий диск только на чтение, следовательно, при аварийном завершении работы ничего страшного не происходило.

На виртуальной машине всё отработало как по учебнику, но установка на реальную машину оказалась делом куда более интересным. Сначала я опробовал штатный способ установки. Созданный раздел оказался повреждён и не подлежал восстановлению, загрузчик не установился. Создал разделы вручную и подсунул их инсталлятору — результат был аналогичен предыдущей попытке. Оказалось, что на реальной древней машине инсталляционный скрипт криво создаёт разделы, а при установке загрузчика в MBR убивает даже те, что есть. На более современном компьютере с тем же винтом всё устанавливалось без единого косяка, из чего я сделал вывод: инсталляционный скрипт считает, что любая машина обязана понимать, что такое LBA32, а BIOS материнки искренне думает, что LBA28 (а может, и что подревнее) — до сих пор самый модный метод адресации.

Уменьшение размеров загрузочного раздела до 50 МБ ситуацию не облегчало. Возня с мануалами ни к чему не привела. Способ объяснить загрузчику метод адресации явно существовал, но за давностью лет упоминаний о нём было мало. В конце концов я нашёл другое решение: поставить на машину полноценный дистрибутив линукса, который точно работает на подобных материнках, подсадить к нему в конфигурацию загрузки файлы микродистрибутива, а потом удалить всё лишнее.

Инсталляционный скрипт полноценного дистрибутива подтвердил, что BIOS, несмотря на обновление до последней версии, дико крив, и для установки загрузчика будет использован какой то очень коварный метод. По завершении всех манипуляций я больше удивился не тому, что всё загрузилось, а тому, что двухгиговый винт начал определятся в BIOS (причём на любой машине) как 524-метровый, причём после загрузки системы оказывалось, что реальная ёмкость диска всё-таки 2 ГБ.

Обрадованный победой, закинул на место подготовленные конфиги и стал пытаться достучаться до CUPS по сети. Интерфейс оказался недоступен, в списке процессов соответствующего демона не наблюдалось, в логах ошибок ничего подозрительного не нашлось. Как только винт был переставлен обратно на более свежую машину, CUPS запустился. Оказалось, создатели этого чудо-дистрибутива затолкали в него самую распоследнюю версию CUPS, да ещё и откомпилированную под 686 архитектуру. Зачем в микродистрибутив пихать модуль, минимальные требования которого серьёзно круче всего остального хозяйства, для меня до сих пор загадка.

Разбираться, как собирать опциональные модули для этого микрочуда, было уже выше моих сил. В куче хлама отрыл AT-материнку под Pentium II и соответствующий процессор. Вся возня с загрузчиком оказалась напрасной: на эту мать всё встало без особых проблем.

Но это был не конец приключений. CUPS не имел встроенных драйверов на нужный принтер, а значит, нужно было искать подходящий PPD-файл. На сайте изготовителя принтера рекомендовалось взять его из виндовых драйверов PostScript. Файл быстро нашёлся, однако CUPS заявил о том, что не может его использовать по непонятным причинам. Правильным решением оказалось взять этот файл из драйверов под Mac OS.

Итогом всей этой возни стало вполне работающее решение, используемое уже несколько месяцев. Оплата моего потраченного рабочего времени обошлась куда дороже покупки готового принт-сервера, но начальству виднее.

9661

Чресловещатель

1 августа 2012, 07:45

Ездил с друзьями на выходные в Киев погулять. Выгрузившись поутру из поезда, вскоре оказались в ресторанчике, где перекусили и нагуглили наконец, воспользовавшись местным вайфаем, где же нам предстоит ночевать. Потом дошли до хостела, заселились и продолжили бродить.

Так как я, в отличие от спутников, был в Киеве только один раз и очень давно, а вдобавок плохо ориентируюсь в трёхмерном пространстве, уже через час после отбытия из хостела я окончательно потерял чувство направления и понимание того, где я вообще нахожусь, о чём неоднократно жаловался вслух.

В моём смартфончике в качестве ОС используется правильный, Debian-based линукс. Уже давно я добавил на событие поднятия сетевого интерфейса выполнение простенького скрипта, оповещающего синтезатором голоса о подключении к сети.

Где-то около часа ночи из моих штанов донёсся человеческий голос: «Connected to Wi-Fi hotspot %restaurantName%».

— Так вот где мы находимся! — воскликнул я во внезапном озарении.