About Blog PGP Key

Archive for January, 2009

/etc/apt/preferences

Жаль, что в /etc/apt/preferences нельзя сказать что-то типа:

Package: xserver-xorg*
Pin: release a=experimental
Pin-Priority: 600


Т.е. нехватает полноценных wildcard’ов или regexp’ов в именах пакетов. И вообще про сабж доков не особо много, а в apt_preferences(5) похоже что есть не все.

LiveFlash and btrfs (part 2)

Я короче говоря задолбался… Оно у меня таки типа заработало. Как минимум система с БТР’а грузится. Для этого пришлось чуть пропатчить скрипт из пакета initramfs-tools (багу в дебиановскую багзиллу повесил). Также пересобрал e2fsprogs с патчем для понимания btrfs. Правда udev вместо blkid использует какой-то другой велосипед для определения UUID, Label и типа FS. Соответственно монтирование по LABEL=… не работает.

fsck.btrfs сегфолтится постоянно. Закончилось все тем, что я обнаружил что update-grub начал вылетать с руганью, что не может найти где у меня /. Там походу третий велосипед.

Вернул все на reiserfs.

LiveFlash и btrfs

Захотелось мне сделать себе нормальную загрузочную LiveFlash с иксами и некоторым минимумом софта. Форматнул флешку, сделал debootstrap туда, выбрав архитектуру x86_64, поставил grub и ребутнулся. Вроде все работает. Но поставить больше ничего нельзя, так как интернета нету.

Смонтировал свой ветнт c обычным 32-битным дистром, зачрутился туда и попытался поднять wifi. wpa_supplicant ругнулся и все.

Ребутнулся обратно в основную систему и завел это в kvm, сказав ему, что флешка это мой sda. Поднял сеть и настроил NAT.

Ради интереса решил попробовать заюзать btrfs, которую обещают в 2.6.29. Из вкусного для LiveFlash — прозрачная компрессия. Из линуховых FS такое больше никто не умеет.

Быстренько пересобрал ведро 2.6.28, добавив патч TuxOnIce на всякий случай. Собрал пакеты btrfs-source и btrfs-tools версии 0.18, взяв за основу то, что лежит в unstable (0.16), засунул это все на флешку и запустил KVM.

mkfs.btrfs ругнулся непонятным образом:
failed to zero device end -5

Гугль нашел только ссылку на LOR, где у человека похожая проблема. Решений не было. Погасил KVM, собрал btrfs-tools еще и для i386. Запустил mkfs.btrfs уже на host-системе… И оно сработало. Загрузился с флешки в KVM-е опять. Попробовал подмонтировать. mount ругнулся что неизвестная FS. Загрузив модуль btrfs руками, я её таки смонтировал, указав еще -o compress

С помощью dd положил файл на раздел файл на 100 метров. df показал, что занято всего 2.5. То есть компрессия работает. Переписал на btrfs всю файловую систему с флешки. Получилось:

/dev/sda2 1.4G 757M 672M 53% /mnt/root
/dev/sda3 2.4G 382M 2.0G 16% /mnt/tmp


То есть экономится 50% места.

Дальше захотелось с этой btrfs загрузиться. Запихнул в initrd нужный модуль. После ребута система висит в initrd с фразов “Waiting for root filesystem”. Грепнув содержимое initrd, обнаружил, что он не только дожидается появления соответствующего девайся, но и проверят типа файловой системы с помощью blk_id. Как и следовало ожидать, btrfs оно не умеет.

В мане нашел, что в параметрах ядру можно сказать rootfstype=btrfs. Попробовал и получил аналогичный вис.. Ковырялся в шелл-скриптах initrd. Нашел там багу, согласно которой rootfstype начинает влиять слишком поздно. В итоге при загрузке вываливается fsck и ругается что нужно чинить FS. Дальше буду разбираться завтра