[debian] Show installed packages sizes
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
In XEN 4.0.1-2 package on Debian GNU/Linux 6.0.1 (squeeze):
1. Patch your /etc/xen/scripts/qemu-ifup file
echo -c 'config qemu network with xen bridge for '
echo $*
+ip link set $1 addr fe:ff:ff:ff:ff:ff
ifconfig $1 0.0.0.0 up
brctl addif $2 $12. Add /etc/xen/scripts/hotplugpath.sh
SBINDIR="/usr/sbin" BINDIR="/usr/bin" LIBEXEC="/usr/lib/xen/bin" LIBDIR="/usr/lib64" SHAREDIR="/usr/share" PRIVATE_BINDIR="/usr/lib64/xen/bin" XENFIRMWAREDIR="/usr/lib/xen/boot" XEN_CONFIG_DIR="/etc/xen" XEN_SCRIPT_DIR="/etc/xen/scripts" XEN_LOCK_DIR="/var/lock"
http://lists.xensource.com/archives/html/xen-devel/2010-12/msg01302.html
Check if your kernel was built with:
CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_XEN_NETDEV_FRONTEND=m
Add modules to initrd (in DomU)
echo "xen-blkfront" >> /etc/initramfs-tools/modules echo "xen-netfront" >> /etc/initramfs-tools/modules
Update initrd (in DomU)
update-initramfs -u -k all
/usr/src/modules/drbd8/drbd/drbd_nl.c: In function ‘drbd_nl_init’: /usr/src/modules/drbd8/drbd/drbd_nl.c:2403: error: size of array ‘type name’ is negative /usr/src/modules/drbd8/drbd/drbd_nl.c:2409: warning: passing argument 3 of ‘cn_add_callback’ from incompatible pointer type
ln -s /usr/src/linux-headers-`uname -r`/ /lib/modules/`uname -r`/source m-a -t build drbd8
При сборке пакетов, крайне не рекомендуется изменять исходный код. Если нам все-таки необходимо это сделать – пользуемся менеджерами патчей dpatch или quilt.
1. Устанавливаем dpatch
apt-get install dpatch
2. В список зависимостей Build-Depends, который находится в debian/control, добавляем dpatch
3. Создаем папку:
mkdir debian/patches
4. С помощью команды dpatch-edit-patch создаем наш патч. Утилита откроет консоль с копией исходников. Все сделаные изменения будут собраны в diff.
dpatch-edit-patch 01_our_new_patch
5. Файл debian/patches/00list указывает порядок исполнения. Добавляем название нашего патча в список :
echo 01_our_new_patch >> debian/patches/00list
6. В файл сборки debian/rules добавляем:
include /usr/share/dpatch/dpatch.make ... build: build-stamp build-stamp: patch-stamp ... build stuff here ... clean: unpatch ... clean stuff here ... ...
original link: HowTo use dpatch
Иногда перед счасливыми обладателями серверов DELL стоит необходимость администрирования/мониторинга RAID контроллера без использования всякого рода GUI.
Для PERC 5 и PERC 6 котроллеров под управлением драйвера megaraid_sas используется утилита MegaCli
Для контроллеров SAS 5 и SAS 6 под управлением драйвера mptsas:
To get the device ID within the array, say if you know per Dell OpenMange that the drive is in slot 3, query with:
[root@host]# MegaCli -PDInfo -PhysDrv[32:3] -aAll Enclosure Device ID: 32 Slot Number: 3 Device Id: 3 Sequence Number: 13 Media Error Count: 182 Other Error Count: 23 Predictive Failure Count: 0 Last Predictive Failure Event Seq Number: 0 Raw Size: 476940MB [0x3a386030 Sectors] Non Coerced Size: 476428MB [0x3a286030 Sectors] Coerced Size: 476416MB [0x3a280000 Sectors] Firmware state: Online SAS Address(0): 0x1221000003000000 Connected Port Number: 3(path0) Inquiry Data: ATA ST3500320AS SD15 9QM76H5M
From the above, we learn this failed drive is “Device Id”=3, so we can now query it using smartctl to see the full smart info:
[root@host]# smartctl -a -d megaraid,3 /dev/sdb
В случае ошибки промлемный физический том перестаёт использоваться raid-ом, и демон mdadm уведомляет администраторов о происшедшем по почте:
This is an automatically generated mail message from mdadm running on buki A Fail event had been detected on md device /dev/md2. It could be related to component device /dev/sdj2. Faithfully yours, etc. P.S. The /proc/mdstat file currently contains the following: Personalities : [raid1] [raid6] [raid5] [raid4] md2 : active raid5 sdi2[0] sdl2[3] sdk2[2] sdj2[4](F) 1463681856 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU] md1 : active raid1 sdk1[0] sdl1[1] 489856 blocks [2/2] [UU] md0 : active raid1 sdi1[0] sdj1[1] 489856 blocks [2/2] [UU] unused devices:
В данном случае ошибка была обнаружена на устройстве /dev/sdj2, входящем в raid /dev/md2.
When it comes to building custom parts for my current flavor of Linux
distribution I am a bit of a purist and prefer to work within the distributions package management framework. The main reason being is that removal and upgrading of that package is easier and cleaner. With a good package management system like Debian’s it is actually easier than CMMI.
Recently I needed to build a custom Debian kernel for xen without pae extentions but I didn’t want to use a vanilla kernel. I wanted to use the official Debian kernel with its included distribution specific patches. Searching around the net I found many ways of doing it but they ultimately failed for one reason or another. Others worked but were just messy or incomplete. So I developed what I consider the cleanest and simplest way of building the kernel. It is actually not far off the official Debian kernel package building method. Here’s what I did in easy cut’n'paste steps for a fresh Debian Etch system.
#create a snapshot of the LV drive /usr/sbin/lvcreate -L5G -s -n vm_test_snap /dev/VolGroup00/vm_test #turn the snapshop into a file image dd if=/dev/VolGroup00/vm_test_snap | gzip -9 >/backup/vm_test.dd.gz #remove the snapshot /usr/sbin/lvremove /dev/VolGroup00/vm_test_snap #move the file image #copy and modify the Xen config file cp /etc/xen/test /etc/zen/test2 vi /etc/zen/test2 #change the name of the LV drive to vm_test2 #uncompress the file image into a LV drive /usr/sbin/lvcreate -n vm_test2 --size 5G VolGroup00 gzip -dc /backup/vm_test.dd.gz | dd of=/dev/VolGroup00/vm_test2 #start the new VM /usr/sbin/xm create -c test2
Источник: http://quadruple.ca/how-move-virtual-machine-one-computer-another
Приводится пример установки Дебиана/Ubuntu из под других операционных систем.
Ссылки на первоисточники:
Оригинал http://deb.wapper.ru/nginx/
Если нужен пакет для testing/unstable или Ubuntu, то его надо будет пересобрать:
1. Взять .dsc, .diff.gz, .orig.tar.gz 2. dpkg-source -x этот.dsc 3. cd в получившийся каталог 4. dpkg-buildpackage -rfakeroot
после этого полученный пакет поставить обычным образом: dpkg -i nginx_0.4*.deb
Пакет по умолчанию собирается с большинством прибамбасов: fastcgi, imap/pop3, ssl. Для удобства траблшутинга есть также непострипанный бинарник с дебаг-символами: /usr/sbin/nginx.debug. Вся необходимая обвязка тоже есть: инит-скрипт, логротатор, вполне-рабочий конфиг.
Также пакет собирается и работает на Ubuntu Linux и на GNUSolaris.
Такую строку в /etc/apt/sources.list можно использовать для добавления репозитария:
deb http://deb.wapper.ru/nginx/ ./
Оригинал статьи: http://habrahabr.ru/blog/linux/33514.html
a также: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ru.html#s-apt-show-versions
PbuilderHowto
Как вы уже наверно заметили в ubuntu, а тем более в debian, после выхода стабильного релиза, обновление пакетов происходит только в случае обнаружения критических ошибок. Это особенно заметно, когда обновление програмы которое вы так долго ждали, выходит спустя несколько дней после выхода вашего любимого дистрибутива. Но как вы уже догадываетесь – это нас не остановит.
Существует множество способов решения этой проблемы, поэтому сейчас мы все и рассмотрим
cd /usr/src wget http://bits.xensource.com/oss-xen/release/3.2.0/xen-3.2.0.tar.gzwget http://msinhore.xen-br.org/files/xen/linux-2.6.18-xen.tar.gz
Что нужно для сборки
apt-get install iproute bridge-utils python-twisted gcc binutils make zlib1g-dev python-dev transfig bzip2 screen ssh debootstrap libcurl3-dev libncurses5-dev x-dev libsdl1.2-dev bin86 bcc python-pam patch latex-make qemu qemu-launcher qemuctl graphviz graphviz-dev lvm2 libvncserver-dev libjpeg62-dev libjpeg62 gettext python-xml gawk tetex-extra tetex-base apt-get install unifdef
Если архитектура i386
apt-get install libc6-xen
Компиляция гипервизора и ядра
cd /usr/src tar zxvf xen-3.2.0.tar.gztar zxvf linux-2.6.18-xen.tar.gz -C xen-3.2.0cd xen-3.2.0 hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg make dist && make install
depmod 2.6.18.8-xen update-grub
update-rc.d xend defaults 20 21 update-rc.d xendomains defaults 21 20 mkinitramfs -o /boot/initrd.img-2.6.18.8-xen 2.6.18.8-xen
Оригинал статьи находится: http://wiki.xen-br.org/index.php?title=Compila_xen_etch
Ещё
#!/bin/bash
SOURCE_DIR=/lib/modules/`uname -r`/source
BUILD_DIR=/lib/modules/`uname -r`/build
KERNEL_HEADER_DIRS='i386'
KERNEL_ARCH='i386'
DIR=/usr/src/linux-headers-`uname -r`
##------------------------------------------------------------------------------
cd ${SOURCE_DIR};
(
find .
-path './Documentation/*' -prune -o
-path './arch/*' -prune -o
-path './include/asm*' -prune -o
-path './scripts/*' -prune -o
-path './include/*' -print -o
( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Rules.make' ) -print;
find include/asm-generic -print;
for i in ${KERNEL_HEADER_DIRS}; do
find arch/$i
( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Rules.make' ) -print;
find include/asm-$i -print;
done;
)
|
cpio -pd --preserve-modification-time ${DIR}
##------------------------------------------------------------------------------
mkdir -p "${DIR}/arch/${KERNEL_ARCH}/kernel"
mkdir -p "${DIR}/include"
cp -a ${BUILD_DIR}/{.config,.kernel*,Module.symvers} "${DIR}"
[ -d "${BUILD_DIR}/arch/${KERNEL_ARCH}/include" ] &&
cp -a "${BUILD_DIR}/arch/${KERNEL_ARCH}/include" "${DIR}/arch/${KERNEL_ARCH}/include" || :
[ -f "${BUILD_DIR}/arch/${KERNEL_ARCH}/kernel/asm-offsets.s" ] &&
cp "${BUILD_DIR}/arch/${KERNEL_ARCH}/kernel/asm-offsets.s" "${DIR}/arch/${KERNEL_ARCH}/kernel" || :
[ -f "${BUILD_DIR}/arch/${KERNEL_ARCH}/module.lds" ] &&
cp "${BUILD_DIR}/arch/${KERNEL_ARCH}/module.lds" "${DIR}/arch/${KERNEL_ARCH}"
cp -a ${BUILD_DIR}/include/config "${DIR}/include"
ln -sf "${DIR}/include/asm-${KERNEL_ARCH}" "${DIR}/include/asm"
cd ${BUILD_DIR};
for dir in linux asm-generic asm-${KERNEL_HEADER_DIRS}; do
mkdir "${DIR}/include/$dir";
echo "${BUILD_DIR}/include/${dir}/* ${DIR}/include/$dir"
cp -a ${BUILD_DIR}/include/${dir}/* ${DIR}/include/$dir
done
cp -a ${SOURCE_DIR}/scripts* ${DIR}
cp -a ${BUILD_DIR}/scripts/* ${DIR}/scripts/
rm ${BUILD_DIR}
ln -sf ${DIR} ${BUILD_DIR}
exit 0
Работает на WordPress | Локализация: goodwin.wpbot.ru