Debian Installer: Detect network hardware, missing firmware BNX2

При установке дебиана на сервера подобные IBM x3650 можно столкнуться с ошибкой определения сетевых драйверов: «Some of your hardware needs non-free firmware files to operate», что означает необходимость подсунуть инсталлятору несвободные драйвера, указанные ниже.

В данном случае это «bnx2/bnx2-mips-09-6.2.1b.fw», но может быть и другой в зависимости от железа. Необходимые драйвера можно скачать вот тут: https://github.com/cernekee/linux-firmware/tree/master/bnx2. Их нужно положить на съемный носитель как предписывает инсталлятор (то есть, в данном случае, в папку bnx2 в корне флешки) и нажать YES. Вполне возможно, что операцию придется провести несколько раз, если в сервере несколько сетевых карт, требующих разных драйверов — в таком случае можно скачать их все сразу, или подсовывать по мере необходимости. Отмонтировать или монтировать флешку не нужно — можно смело втыкать и вытыкать из порта сколько понадобится.

Из моих наблюдений: драйвера не подцеплялись со съемного диска Zalman VE200, эмулирующего CD-привод с ISO-образом инсталлятора. Может особенность конкретного устройства, но скорее потому что сам диск был отформатирован в NTFS, так что флешку под дрова лучше сразу форматнуть в FAT32.

Если бы линукс был популярен — были бы и вирусы!

В очередной раз услышал этот боян. Честно говоря не слышал его уже давно, но, оказывается, за последние 15-20 лет мало что поменялось — удивительно [сарказм].

Странны тут две вещи. Во-первых, что люди с поразительной стабильностью верят в одни и те же утверждения, хотя за последние даже 10 лет IT-сфера значительно перетряхнулась благодаря тем же мобилочкам и облачным сервисам, что, как мне кажется, напрямую влияет и на вирусописателей. Появление таких сущностей как ботнеты и вирусы-шифровальщики говорит о развитии как современного IT в целом, так и адаптации вирусов к этим изменениям.

И из этого вытекает второе удивительное: несмотря на очевидное развитие IT во всех — как положительных так и отрицательных — областях, люди считают что линукс — совершенно неинтересная платформа для вирусописателей только потому, что его процент на десктопах все еще низок. Это при том что линуксы до сих пор занимают доминирующее положение на всех серверах имеющих отношение к интернет-службам, при том что на линуксовом ядре работают эти наши андроиды (а значит как минимум ядерные уязвимости там могут присутствовать вплоне), медиацентры, телевизоры и чуть ли не холодильники. И это все — масса сетевых устройств, которая не может не являться офигенным лакомым кусочком для организаторов тех же ботнетов, с которых можно ДДоСить ресурсы за бабло, или заниматься противоправными вычислениями чего-либо. И, мне кажется, ушли уже времена, когда кто-то посерьезке атаковал конечные компы пользователя, засылая кейлоггеры и прочее такое, что могло бы стырить пользовательские данные. Те же шифровальщики теперь просто «берут в заложники» ваши данные и вымогают бабло за расшифровку. Но в остальном, кмк, вирусы превратились скорее в сервисы предоставления ресурсов миллионов компов, и те же вебсервера сейчас бы пачками складывались и агонизировали без антивирусов, держись защита линукса лишь на его «неинтересности». Странно что люди в современном мире этого все еще не понимают.

LVM: изменение размера, снапшоты, миграция

LVM — старая и добрая технология, представляющая дополнительный слой абстракции между физическими дисками или разделами на них, и томами, отформатированными в вашу любимую файловую систему. Так как статей на тему настройки LVM в инете валом, я ограничусь парой интересных фич, ради которых, собственно, LVM и стоит затевать.

Перво-наперво

У нас должно быть свободное место в Volume Group.  Нет смысла без особой необходимости забивать все свободное место логическими томами, когда их свободное место будет использовано не до конца. Если у нас один хард на 500 гиг, мы делаем группу на весь этот объем, а дальше, например, делаем один том в 1G под swap, другой — в 9G под /, и, например, третий — на 50G под /home. У нас остается  440G свободного места, которое мы в любой момент можем докинуть в любой раздел, а также использовать под снапшоты. Соу…

 

Как добавить места на Logical Volume

Увеличение можно проделывать на смонтированной файловой системе.

Допустим, у нас есть LVM-том с линуксовым корнем /dev/mypc/root, содержащий на себе линуксовый корень. Докинуть 100 мегабайт можно командой:

 
 
  1. lvextend -L +100m /dev/mypc/root
  2. resize2fs /dev/mypc/root

 

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

 

 

 

Как сделать и откатить снапшот

Допустим, у нас все еще есть LVM-том /dev/mypc/root, содержащий на себе линуксовый корень. Если нам нужно, например, накатить новые дрова для видюхи и мы боимся все сломать, делаем снапшот:

 
 
  1. lvcreate -L2G -s -n rootsnapshot /dev/mypc/root

 

Эта команда сделает снапшот /dev/mypc/rootsnapshot, который будет содержать состояние на момент создания снапшота. При этом есть ограничение в 2 гига на изменения в нашем корне, если превысим — снапшот перестанет быть валидным и его можно будет только удалить:

 
 
  1. lvremove /dev/mypc/rootsnapshot

 

Так как хотелось бы снапшот уметь откатить в случае если у нас все поломается, то вариант с переполнением зарезервированного места — не вариант для нас.

 

Автоматическое увеличение размера снапшота LVM

Тут все просто, но не так просто, как часто пишут в интернетах. Нужно:

  1. Изменить файлик /etc/lvm/lvm.conf:
    snapshot_autoextend_threshold = 80
    snapshot_autoextend_percent = 20
    monitoring = 1

    Эти опции включают мониторинг, а так же увеличивают размер снапшота на 20% (от текущего размера) каждый раз, когда он оказывается занят изменениями на 80%.

  2. Установить dmeventd, который может не стоять, но который нужен чтобы все работало!

Теперь, когда наш снапшот умеет расти в размере и ему почти ничего не страшно, можно поиздеваться над корнем и откатить все изменения командой:

 
 
  1. lvconvert --merge  /dev/mypc/rootsnapshot

 

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

 

Как смигрировать на другой физический диск

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

Допустим у нас есть диск /dev/sda. На его разделе /dev/sda1 у нас покоится Volume Group «mypc» с нашими логическими томами:

  1. root — с корнем линукса (/),
  2. home — с домашними  каталогами (/home),
  3. swap — с разделом подкачки.

И нам нужно все это добро перенести на новый хард — /dev/sdb, который гол как сокол и ничего ж там нет.

Готовим новый диск

 
 
  1. # Создаем раздел на новом диске:
  2. parted -a opt /dev/sdb mkpart primary 0% 100%
  3. # Создаем физический том LVM:
  4. pvcreate /dev/sdb1
  5. # Расширяем Volume Group на новый физический том:
  6. vgextend mypc /dev/sdb1

 

Сдвигаем наши три логических тома со старого физического тома на новый:

 
 
  1. pvmove -n /dev/mypc/root /dev/sda1 /dev/sdb1
  2. pvmove -n /dev/mypc/home /dev/sda1 /dev/sdb1
  3. pvmove -n /dev/mypc/swap /dev/sda1 /dev/sdb1

 

Избавляемся от старого харда

 
 
  1. # Удаляем физический том LVM из группы "mypc":
  2. vgreduce mypc /dev/sda1
  3. # Удаляем физический том LVM:
  4. pvremove /dev/sda1

 

Устанавливаем загрузчик на новый диск и обновляем его конфиг:

 
 
  1. grub-install /dev/sdb
  2. update-grub

 

После перезагрузки останется вытащить старый диск и при необходимости выставить в биосе загрузку с нового.

В chrome под linux не работает встроенный чат twitch

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

Или показывая чат, иногда с его содержимым, но с «колесиком» загрузки поверх и без возможности что-либо писать:Такая проблема проявлялась только в хроме (вернее в хромиуме, но не суть) и только на одном из двух аналогичных в плане софта компов. Также проблема возникала только если чат был встроен по ссылке вида «http://www.twitch.tv/channelname/chat» и не проявлялась при встраивании по ссылке вида «https://www.twitch.tv/embed/channelname/chat».

Так как на втором компе с той же версией линукса (Linux Mint 17.3) и Chromium ( 64.0.3282.140) проблемы не наблюдалось, я заглянул в консоль (CTRL   Shift I) и сравнил ошибки. И действительно, на «нерабочем» компе наблюдалась ошибка «Uncaught RangeError: Unsupported time zone specified undefined» Оказалось, что на этом компе у меня выставлена таймзона «-3», соответствующая Москве, а не зона с названием «Москва». Не знаю какого рожна хром решил к этому придраться, но выставление зоны на «именную» решило данную дикую проблему.

Напомню, что в этих наших debian-like дистрах зона меняется командой:

 
 
  1. dpkg-reconfigure tzdata

 

Второй вариант где может не работать

Идем в настройки хрома:
«Настройки контента» -> «Файлы Cookie», убеждаемся что снят флаг «Блокировать сторонние файлы cookie»

Поправить пакет *.deb на скорую руку

 

Столкнулся с банальной задачей — после быстрого формирования пакета (агента системы мониторинга) при помощи checkinstall, захотелось дополнить его правильным конфигом и стартовыми скриптами. На скорую руку это делается примерно так:

  1. Распаковываем пакет:
    dpkg-deb -R zabbix-agent.deb extracted/
  2. Внутри каталога extracted/DEBIAN создаем исполняемый файл postinst с требуемым скриптом:
     
     
    1. #!/bin/bash
    2. #
    3. #тело скрипта
    4. #
    5. exit 0
  3. Докладываем в extracted/ все необходимые файлы, размещая по нужным путям. Не забываем о правах доступа при создании каталогов, если софт будет работать не от рута.
  4. Собираем пакет обратно:
    dpkg-deb -b extracted
    mv extracted.deb  zabbix-agent-new.deb

Источники гуглинга:
https://askubuntu.com/questions/825321/
https://askubuntu.com/questions/62534/