2010-07-10

Клонирование системы с обычного HDD на SSD

Дано /dev/sda:

---------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---------------------------------------------------------------


Склонировать надо на новый диск /dev/sdb, на котором создать ту же таблицу разделов, но размер каталогов может быть другим, в данном случае раздел /dev/sdb7 был меньше.

---------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---------------------------------------------------------


Берем привычный инструмент и клонируем:

dd if=/dev/sda of=/dev/sdb bs=1M


После этого практически все программы работы с разделами (sfdisk, cfdisk, parted(gparted)) отказались работать с /dev/sdb, ссылаясь на неправильную таблицу разделов, показывающую верхнюю границу разделов выше физического размера целевого винта /dev/sdb. Остался только верный и надежный fdisk, честно показавший все данные по разделам, даже некорректные:

# fdisk -l /dev/sdb


Справиться с проблемой помогло удаление целиком расширенного раздела /dev/sda4, сохранение таблицы на диск (w), и последующее создание тех же самых разделов (n) указанием начального и конечного цилиндров:

# fdisk /dev/sdb
> n

Номера цилиндров вводить те же самые, что и на исходном диске:

# fdisk /dev/sda
> p


Теперь gparted показывал диск. Мало того, после просмотра оказалось, что вся инфа, переписанная с исходного диска командой dd в самом начале, находится на месте и после удаления расширенного раздела никуда не делась. Цветом явно выделялись области с данными. Осталось только грохнуть недо-раздел /dev/sdb7 и заново создать его в новых границах. А после банальным копированием с сохранением прав перенести данные с /dev/sda7 на /dev/sdb7:

# cp -r -p /* /


Раздел монтировался по label, который забыли указать при создании раздела. Но не беда:

# tune2fs -L label /dev/sdb7


Кстати, желательно после каждой работы с разделами и винтами перечитывать их командой:

# partprobe


Также необходимо в /etc/fstab в опциях монтирования разделов вместо relatime указать noatime для уменьшения износа SSD-дисков.

2010-06-21

GoogleCL - CLI утилита для работы с сервисами Google

Google в своём блоге анонсировала утилиту для работы с сервисами Google через командную строку под названием GoogleCL

Она позволяет автоматизировать такие задачи как постинг в Blogger, добавление событий в Calendar или редактирование документов в Google Docs.

Например закачать директорию с фотографиями в Picasa теперь можно так:

$ google picasa create --title "My album" ~/Photos/vacation/*.jpg


Ещё примеры использования:

$ google blogger post --blog "My blog" --tags "python, googlecl, development" my_post.html
$ google calendar add "Lunch with Jason tomorrow at noon"
$ google docs edit --title "Shopping list" --editor vim


GoogleCl написана на языке Python и использует библиотеку gdata для работы с Google Data API.
Утилита опубликована под лицензией Apache v2.0.

Домашняя страница GoogleCL

>>> Оригинальный анонс в блоге Google (на английском языке)

2010-05-25

dhcp3-client и DHCP-сервер win2k3

Сегодня озаботился прописыванием дополнительных маршрутов для всех клиентов сети в новую DMZ. Задал дополнительные маршруты в настройках (classless-static-routes) штатного DHCP-сервера Windows 2003. Проверил на виртуальной Windows XP - все в порядке. На линуксовых клиентах - ни в какую. Поиск по интернету был поначалу не особо успешным. Предлагалось создать в каталоге /etc/dhcp3/dhclient-exit-hooks.d файл rfc3442-classless-static-routes и забить в него конфиг, аналогичный rfc3442-classless-routes. Не помогло. Как я теперь понимаю, такие советы относились скорее к реализации DHCP-сервера согласно rfc3442. Но Microsoft, как известно, сама себе стандарт. Тут нашлось решение проблемы, и никаких файлов создавать не надо. Ибо, цитирую:
На самом деле "правильно" передавать все то же самое, но в опции 121. 249 забила Microsoft, когда стандарт (classless static routes) был еще в драфте. Так до сих пор и работает.

Т.е. достаточно всего лишь перебить в опции:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

значение 121 на 249 и перезапустить сеть, после чего linux-машины получат свои маршруты.

2010-04-12

Открылся архивный раздел проекта Debian

Проект Debian открыл архивный раздел snapshot.debian.org, в котором хранятся предыдущие версии пакетов. Таким образом, пользователь получает возможность установить пакет или просмотреть исходный код для любой нужной ему версии програмы (возможно также использовать и фильтр по дате). Авторы проекта считают, что такая возможность окажется очень удобной для разработчиков и просто продвинутых пользователей - так как теперь стало возможным, например, точно определить, на каком этапе в программе появилась какая-либо регрессия. Также теперь есть возможность найти пакеты, которые уже больше не предоставляются для Debian. Наконец, проект может оказаться полезным администраторам: используя фильтр по дате, они смогут точно воссоздать окружение, которое было использовано в тот или иной момент времени, и проследить за тем, как проходило обновление.

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

В данный момент в архив попали почти все пакеты из разделов main и security, начиная с марта 2005 года. Также были добавлены пакеты из ряда сторонних репозиториев, таких как debian-volatile, debian-ports и backports.org. В данный момент объем архива достигает 6.5 террабайт - и это только начало.

сайт проекта

>>> Анонс на оф. сайте Debian

2010-04-10

Релиз Yasm 1.0.0

Yasm - распространяемый под лицензией BSDL ассемблер для x86 и x86_64 платформ с поддержкой синтаксисов nasm и gas, частично tasm , форматов binary, ELF32, ELF64, 32/64-bit Mach-O, RDOFF2, COFF, Win32/64.

Несмотря на уже широкое использование yasm в различных opensource проектах, это первая не-бета версия, автором были достигнуты следующие цели:

* Полная поддержка NASM-синтаксиса для основных целевых платформ
* Поддержка синтаксиса GAS (GNU assembler / binutils)
* source-level отладка с использованием DWARF2 или CodeView 8.0 (VS2005)
* Поддержка TLS (Thread local storage) для ELF32/64 и SEH (structured exception handling) для Win32/64
* Поддержка наборов инструкций новейших процессоров AMD XOP/FMA4/CVT16 (Bulldozer) и Intel AVX (Sandybridge)

страница проекта


>>> Подробности и загрузка

2010-04-07

µHub 0.3.1

Вышел релиз p2p-файлообменного хаба µHub 0.3.1. Хаб предназначен для организации хабов по технологии Advanced Direct Connect. Хаб не требователен к оперативной памяти и может работать на устройствах с OpenWRT или других устройствах с ограниченными ресурсами.

С прошлой версии хабу был добавлен следующий фунционал

* Возможность не подключать к хабу клиентов не поддерживающих спецификацию 0.10 ADC.
* базовая защита от флуда в чате и личных сообщениях.
* kqueue backend для Mac OS X и BSD.
* возможность прослушивать несколько портов одновременно.

Скомпилированные сборки для Win32 можно скачать здесь.

Дерево Git (git://github.com/janvidar/uhub.git)

>>> Подробности

arping 2.09

1 апреля вышла новая версия arping2 (не путать с arping из пакета iputils) - утилиты, позволяющей выполнять ARP запросы по MAC-адресу, и таким образом вычислять IP адрес по MAC, минуя ARP кэш. Обновления:

* удален весь старый код (из Arping 1.x)
* добавлена опция -D, при выборе которой результаты запроса выводятся в виде знаков препинания (ответы как точки, потерянные пакеты как восклицательные знаки)

>>> Подробности