Archive for Декабрь, 2014

Установка Debian Squeeze на Dell 1950

// Декабрь 18th, 2014 // No Comments » // Debian, Dell, grub, md, RAID

В процессе установки вылезло сразу две проблемы:
1) это сетевой адаптер «Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet», по логике маинтейнеров драйвера не попадают в дистрибутив из-за закрытого кода, и действительно зачем серверу нужна сеть
2) сочетание встроенного рейд-контроллера и использование софтрейда md вызывает глюк — не устанавливается GRUB, т.е. после перезагрузки получаем большой кирпич.

Для начала скачиваем последний netinstall, но т.к. он уже в архиве — ищем его здесь >> и нарезаем на cd-r диск.

Первая проблема решается легко, идем на страничку http://wiki.debian.org/Firmware, находим ссылку на нужный файл, для Сквизи это будет firmware.tar.gz, скачиваем и распаковываем в корень(!) флешки. Тогда при инсталляции драйвер подгрузится автоматически.

Флешку подключаем к серверу, всталяем диск и начинаем установку. Нужно выбрать режим «Expert install». И выполняем все по пунктам, как при обычной инсталляции.

После выполнения пункта установки загрузчика GRUB нужно не завершить установку, а выбрать «Start shell».

Теперь решаем проблему установки GRUB. Суть проблемы: то ли скрипт кривой, то ли факт наличие флешки сбивает скрипт и на жесткий диск он так и не попадает, поэтому сделаем все ручками.
Должна быть примерно такая картина:

# df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 15.7G 120.0K 15.7G 0% /dev
/dev/md0 938.0M 155.4M 734.9M 17% /target
/dev/md3 9.2G 148.9M 8.6G 2% /target/home
/dev/md2 3.7G 71.8M 3.4G 2% /target/tmp
/dev/md1 3.7G 286.1M 3.2G 8% /target/usr
/dev/md4 253.9G 356.4M 240.7G 0% /target/var
tmpfs 15.7G 120.0K 15.7G 0% /target/dev
/dev/md0 938.0M 155.4M 734.9M 17% /dev/.static/dev
/dev/sr0 168.0M 168.0M 0 100% /cdrom

если нет — тогда нужно руками смонтировать недостающее:

for d in dev proc sys; do mount --bind /$d /target/$d; done

! Обязательно должна быть строка:

tmpfs 15.7G 120.0K 15.7G 0% /target/dev

если нет, тогда еще раз смонтировать:

umount /target/dev/ && mount --bind /dev/ /target/dev/

Запускаем chroot в уже установленную систему и запускаем там шелл, мне приятнее работать в bash:

chroot /target /bin/bash

Теперь приглашение сменится на [root@debian] #, проверяем, видно ли диски:

# ls -a /dev | grep sd
sda
sda4
sdb
sdb1
...
sdb9
sdc
sdc1
...
sdc9

Осталось только установить GRUB, есть два варианта:

grub-install /dev/sdb
grub-install /dev/sdc
update-grub

или

dpkg-reconfigure grub-pc

и в графическом меню отметить нужные диски.

Проверить установлен ли GRUB можно командой (предварительно нужно установить утилиту file, обычным способом apt-get install file):

# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1951744 sectors; partition 2: ID=0x5, starthead 190, startsector 1955838, 583981058 sectors, code offset 0x63

Дальше нужно вернутся в шелл установщика и вернутся в сам установщик и окончить процесс, для этого достаточно два раза выполнить exit.

Рекурсивное удаление старых файлов

// Декабрь 4th, 2014 // No Comments » // console, linux, noob, sh/bash

В интернете часто встречается решение:

find * -mtime +3 -exec rm -Rf {} \;

но, с ним есть проблемы, если количество файлов слишком велико, получится очень длинная команда и прервется с ошибкой:

/usr/bin/find: Argument list too long

Верное решение:

find . -mtime +3 -exec rm -Rf {} \;

если нужно удалить подкаталоги включительно:

find . -mtime +3 -exec rm -Rf -- {} \;

Или вот такое, даже более идеологически правильное решение:

find . -mtime +3 | xargs rm -Rf