Сегодня всемирный день бэкапа. Создайте и проверьте бэкап сегодня, чтобы не стать жертвой розыгрыша завтра.
Я вот под шумок перевел парочку хостов с rdiff-backup на bacula и проверил восстановление из старого бэкапа. Теперь останется только просматривать отчеты bacula по утрам.
Заметки о Linux, системном администрировании, программировании, электронике и не только
понедельник, 31 марта 2014 г.
понедельник, 24 марта 2014 г.
Выбор уже сделан за вас
Решил просмотреть на компьютере mobi версию книги "Дети пространства" Витуса Вагнера перед заливкой в читалку. Но при запуске Kindle Reader'а получил это
На мой взгляд Amazon ведет себя по-свински предлагая таким образом обновление.
На мой взгляд Amazon ведет себя по-свински предлагая таким образом обновление.
пятница, 14 марта 2014 г.
Пакетирование драйвера для принтера Panasonic KX-MB2020RU
В офисе стоят сетевые МФУ Panasonic, в частности Panasonic KX-MB2020RU. Для Linux производитель предоставляет бинарный драйвер для CUPS. Чтобы не превращать систему в слакварь я оборачиваю файлы драйвера в пакет.
Для Debian это удобно сделать через checkinstall. Отличная утилита, которая контролирует этап установки и перехватывает обращения к файловой системе, отслеживая изменения в процессе установки. По окончании установки все изменения упаковываются в бинарный пакет.
Для начала установим checkinstall
Далее скачиваем дистрибутив драйвера с сайта производителя и запускаем установку через checkinstall
В процессе установки вам будет предложено просмотреть и возможно отредактировать список файлов, которые будут включены в пакет. Я удалил все упоминания /var, которые добавились из-за перезапуска CUPS в процессе установки, и файл /usr/local/share/panasonic/printer/uninstall-driver, который в пакете не нужен.
В итоге получился пакет, который легко удалить или проапгрейдить в будущем.
Для Debian это удобно сделать через checkinstall. Отличная утилита, которая контролирует этап установки и перехватывает обращения к файловой системе, отслеживая изменения в процессе установки. По окончании установки все изменения упаковываются в бинарный пакет.
Для начала установим checkinstall
$ sudo aptitude install checkinstall
Далее скачиваем дистрибутив драйвера с сайта производителя и запускаем установку через checkinstall
$ wget http://cs.psn-web.net/support/fax/common/file/Linux_PrnDriver/Driver_Install_files/mccgdi-2.0.6-i686.tar.gz $ tar -xf mccgdi-2.0.6-i686.tar.gz $ cd mccgdi-2.0.6-i686 $ sudo checkinstall --inspect ./install-driver This package will be built according to these values: 0 - Maintainer: [ Andrey Tataranovich <tataranovich@gmail.com> ] 1 - Summary: [ Driver for Panasonic GDI printers ] 2 - Name: [ printer-driver-mccgdi ] 3 - Version: [ 2.0.6 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ mccgdi-2.0.6-i686 ] 9 - Alternate source location: [ ] 10 - Requires: [ cups ] 11 - Provides: [ mccgdi-2.0.6 ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue: Installing with ./install-driver... ========================= Installation results =========================== startinstall...... start install files...... restart spooler - CUPS [ ok ] Restarting Common Unix Printing System: cupsd. install driver completed please use "system-config-printer" or "lpadmin" to add printer. ======================== Installation successful ========================== You requested to review the list of files that will be included in this package. Now you'll have the chance to review and optionally modify it. Press ENTER to continue. Copying files to the temporary directory...OK Stripping ELF binaries and libraries...OK Compressing man pages...OK Building file list...OK Building Debian package...OK Installing Debian package...OK Erasing temporary files...OK Writing backup package...OK OK Deleting temp dir...OK ********************************************************************** Done. The new package has been installed and saved to /home/andrey/mccgdi-2.0.6-i686/printer-driver-mccgdi_2.0.6-1_i386.deb You can remove it from your system anytime using: dpkg -r printer-driver-mccgdi **********************************************************************
В процессе установки вам будет предложено просмотреть и возможно отредактировать список файлов, которые будут включены в пакет. Я удалил все упоминания /var, которые добавились из-за перезапуска CUPS в процессе установки, и файл /usr/local/share/panasonic/printer/uninstall-driver, который в пакете не нужен.
В итоге получился пакет, который легко удалить или проапгрейдить в будущем.
$ aptitude show printer-driver-mccgdi Package: printer-driver-mccgdi New: yes State: installed Automatically installed: no Version: 2.0.6-1 Priority: extra Section: checkinstall Maintainer: Andrey TataranovichArchitecture: i386 Uncompressed Size: 4,530 k Depends: cups Provides: mccgdi-2.0.6 Description: Driver for Panasonic GDI printers Panasonic printer drivers
Nginx: запаролить доступ к директории с PHP скриптами
Очень удивился когда Nginx дал выполнить скрипт из запароленной директории. При этом на саму директорию пароль спрашивает.
Этот ответ прояснил ситуацию. Полное описание логики блока location.
Этот ответ прояснил ситуацию. Полное описание логики блока location.
четверг, 13 марта 2014 г.
Отключение файла hiberfil.sys в Windows 7
В Windows 7 из настроек Power Options убрали пункт "Enable hibernation" (в Windows XP он был на вкладке Hibernation в Power Options). Чтобы отключить файл hiberfil.sys нужно выполнить с правами Администратора команду
при этом отключится засыпание на диск, если в последующем потребуется его включить обратно, то нужно выполнить
powercfg.exe -h off
при этом отключится засыпание на диск, если в последующем потребуется его включить обратно, то нужно выполнить
powercfg.exe -h on
вторник, 11 марта 2014 г.
Nginx: client intended to send too large body
Если в логи nginx падает ошибка вида
То причина в превышении лимита размера тела запроса в Nginx, за этот лимит отвечает параметр client_max_body_size (по-умолчанию лимит равен 1m).
Чтобы увеличить этот лимит хотя бы до 50m добавьте в конфигурацию nginx (в Debian это можно сделать через файл /etc/nginx/conf.d/local.conf)
P.S. Ответ нашелся тут.
2014/03/11 11:54:28 [error] 8699#0: *4615315 client intended to send too large body: 1569729 bytes, client: xx.xx.xx.xx, server: example.com, request: "POST /upload/index.php HTTP/1.1", host: "example.com", referrer: "http://example.com/upload/"
То причина в превышении лимита размера тела запроса в Nginx, за этот лимит отвечает параметр client_max_body_size (по-умолчанию лимит равен 1m).
Чтобы увеличить этот лимит хотя бы до 50m добавьте в конфигурацию nginx (в Debian это можно сделать через файл /etc/nginx/conf.d/local.conf)
# echo 'client_max_body_size 50m;' > /etc/nginx/conf.d/local.conf # nginx -t the configuration file /etc/nginx/nginx.conf syntax is ok configuration file /etc/nginx/nginx.conf test is successful # service nginx reload
P.S. Ответ нашелся тут.
понедельник, 10 марта 2014 г.
Полная очистка SSD диска
Перед началом использования SSD диска желательно выполнить его полное стирание. Если SSD диск уже использовался ранее, то полное стирание (secure erase) позволит контроллеру не производить предварительную подготовку ячеек NAND перед операцией записи. Если вы не в курсе почему так, то можно почитать это.
Сначала нужно убедиться, что SSD диск не заблокирован BIOS'ом.
Если в результате вывело "not frozen", то можно переходить далее. Иначе нужно искать способ, как разблокировать диск. Один из способов разблокировать диск - выполнить suspend to ram
Чтобы выполнить secure erase нужно выполнить следующие команды (ВНИМАНИЕ! Secure erase безвозвратно удалит все данные с выбранного диска!)
Все, диск полностью очищен и его производительность будет максимальна.
Сначала нужно убедиться, что SSD диск не заблокирован BIOS'ом.
$ sudo hdparm -I /dev/sda | grep frozen not frozen
Если в результате вывело "not frozen", то можно переходить далее. Иначе нужно искать способ, как разблокировать диск. Один из способов разблокировать диск - выполнить suspend to ram
$ echo mem | sudo tee /sys/power/state
Чтобы выполнить secure erase нужно выполнить следующие команды (ВНИМАНИЕ! Secure erase безвозвратно удалит все данные с выбранного диска!)
$ sudo hdparm --user-master u --security-set-pass PasSWorD /dev/sda security_password="PasSWorD" /dev/sda: Issuing SECURITY_SET_PASS command, password="PasSWorD", user=user, mode=high $ sudo hdparm --user-master u --security-erase PasSWorD /dev/sda security_password="PasSWorD" /dev/sda: Issuing SECURITY_ERASE command, password="PasSWorD", user=user
Все, диск полностью очищен и его производительность будет максимальна.
среда, 5 марта 2014 г.
Отключить использование PDIFF в APT
Чтобы отключить использование PDIFF нужно добавить в файл /etc/apt/apt.conf строку Acquire::PDiffs "false";
$ cat <<_EOF_ | sudo tee -a /etc/apt/apt.conf Acquire::PDiffs "false"; _EOF_
суббота, 1 марта 2014 г.
Подготовка образа дискеты с virtio драйвером для установки Windows Server 2003
Использование Windows Server 2003 на выделенном сервере сегодня имеет крайне мало смысла. Но старый солдат еще послужит, если перенести систему в виртуальную машину. В качестве системы виртуализации используется гипервизор KVM, что позволяет использовать virtio драйвера (storage, network, balloon) для оптимальной производительности.
Сначала создаю файл образа дискеты
Скачиваю образ с virtio драйверами. По этому совету я выбрал версию 0.1-49.
Создаю структуру установочного диска
Осталось подчистить хвосты
В результате в файле ./virtio-floppy_0.1-49.ima находится образ дискеты для установки Windows Server 2003 на диск, доступный через virtio контроллер.
Сначала создаю файл образа дискеты
$ truncate -s 1440k ./virtio-floppy_0.1-49.ima $ sudo mkfs -t vfat -n VIRTIO ./virtio-floppy_0.1-49.ima $ sudo mkdir /mnt/floppy $ sudo mount -o loop,rw ./virtio-floppy_0.1-49.ima /mnt/floppy
Скачиваю образ с virtio драйверами. По этому совету я выбрал версию 0.1-49.
$ wget http://alt.fedoraproject.org/pub/alt/virtio-win/archives/virtio-win-0.1-49/virtio-win-0.1-49.iso
Создаю структуру установочного диска
$ sudo mkdir /mnt/iso $ sudo mount -o ro,loop ./virtio-win-0.1-49.iso /mnt/iso $ sudo mkdir -p /mnt/floppy/{i386,amd64}/Win2003 $ sudo touch /mnt/floppy/disk1 $ sudo cp /mnt/iso/WNET/X86/VIOSTOR.* /mnt/floppy/i386/ $ sudo cp /mnt/iso/WNET/AMD64/VIOSTOR.* /mnt/floppy/amd64/ $ cat<<_EOF_ | sudo tee /mnt/floppy/txtsetup.oem [Disks] d1 = "OEM DISK (SCSI) Win2003/32-bit",\disk1,\i386\Win2003 d2 = "OEM DISK (SCSI) Win2003/64-bit",\disk1,\amd64\Win2003 [Defaults] SCSI = WNET32 [scsi] WNET32 = "Red Hat VirtIO SCSI Disk Device Win2003/32-bit" WNET64 = "Red Hat VirtIO SCSI Disk Device Win2003/64-bit" [Files.scsi.WNET32] driver = d1, viostor.sys, viostor inf = d1, viostor.inf catalog= d1, viostor.cat [Files.scsi.WNET64] driver = d2, viostor.sys, viostor inf = d2, viostor.inf catalog= d2, viostor.cat [HardwareIds.scsi.WNET32] id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00000000", "viostor" id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00020000", "viostor" id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00021AF4", "viostor" [HardwareIds.scsi.WNET64] id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00000000", "viostor" id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00020000", "viostor" id = "PCI\VEN_1AF4&DEV_1001&SUBSYS_00021AF4", "viostor" [Config.WNET32] value = Parameters\PnpInterface,5,REG_DWORD,1 [Config.WNET64] value = Parameters\PnpInterface,5,REG_DWORD,1 _EOF_
Осталось подчистить хвосты
$ sudo umount /mnt/{iso,floppy} $ sudo rmdir /mnt/{iso,floppy}
В результате в файле ./virtio-floppy_0.1-49.ima находится образ дискеты для установки Windows Server 2003 на диск, доступный через virtio контроллер.
Модификация Seabios для гипервизора KVM
Для модификации BIOS потребуется установить пару зависимостей
Внедрение секции ACPI_SLIC (используется SLIC той машины, где выполняется модификация) в BIOS для гипервизора KVM
После завершения компиляции нужно установить модифицированную версию Seabios в систему (я не заменяю дистрибутивный BIOS, вместо этого устанавливается отдельная версия)
Далее нужно отредактировать конфигурацию виртуальной машины
В открывшемся редакторе нужно привести XML файл виртуальной машины к подобному виду
После сохранения файла и перезапуска виртуальной машины в BIOS будет доступна дополнительная секция.
$ sudo aptitude install build-essential iasl
Внедрение секции ACPI_SLIC (используется SLIC той машины, где выполняется модификация) в BIOS для гипервизора KVM
$ git clone https://github.com/ghuntley/seaslic.git seaslic $ cd seaslic $ git clone git://git.seabios.org/seabios.git seabios.submodule $ cd seabios.submodule $ git checkout rel-1.7.3.2 $ cd .. $ ./patch.sh
После завершения компиляции нужно установить модифицированную версию Seabios в систему (я не заменяю дистрибутивный BIOS, вместо этого устанавливается отдельная версия)
$ sudo mkdir /opt/seaslic $ sudo cp seabios.submodule/out/bios.bin /opt/seaslic
Далее нужно отредактировать конфигурацию виртуальной машины
$ export LIBVIRT_DEFAULT_URI=qemu:///system $ virsh edit vmname
В открывшемся редакторе нужно привести XML файл виртуальной машины к подобному виду
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> ... <qemu:commandline> <qemu:arg value='-bios'/> <qemu:arg value='/opt/seaslic/bios.bin'/> </qemu:commandline> </domain>
После сохранения файла и перезапуска виртуальной машины в BIOS будет доступна дополнительная секция.
Подписаться на:
Сообщения (Atom)