= заметки о linux == `reposync --arch` несмотря на своё название данная опция не устанавливает `$basearch` для конфигов репозиториев. сделана она только для выставления ограничений того, что скачивать, что является сомнительной функциональностью. поэтому её лучше не использовать или не удивляться странным глюкам во время использования. как правильно устанавливать `$basearch` найти так и не удалось. если хочется скачать репозиторий для другой архитектуры, то в `.repo`-файле нужно указывать явную ссылку на пакеты для нужной архитектуры. [[br]] == в reposync не работает `--delete` репки внутри симлинка сделано, очевидно, для избежания зацикливания. [[CollapsibleStart(патч)]] {{{#!patch --- /usr/bin/reposync.orig 2015-06-05 12:54:23.994992794 +0000 +++ /usr/bin/reposync 2015-06-05 12:59:26.254992567 +0000 @@ -73,7 +73,7 @@ for name in names: fn = os.path.join(directory, name) try: - st = os.lstat(fn) + st = os.stat(fn) except os.error: continue if stat.S_ISDIR(st.st_mode): }}} [[CollapsibleEnd]] [[br]] == переделанный change_rules.sh под centos [attachment:change_tables.sh ссылка] [[br]] == размер консоли 80x25 centos7 внутри виртуальной машины vmware `vmwgfx.enable_fbdev=0` в `/etc/default/grub` и `grub2-mkconfig -o /boot/grub2/grub.cfg`. так же не лишним будет убрать `rhgb quiet`. [[br]] == создание `rescue initramfs` в `centos7` для загрузки на любом железе === вариант 1 {{{ #!bash dracut \ --no-hostonly \ -vf \ -a "rescue" \ /boot/initramfs-0-rescue-$(cat /etc/machine-id).img $(uname -r) }}} и не забыть положить свежий `vmlinuz-0-rescue-$(cat /etc/machine-id)`. === вариант 2 {{{ #!bash mv /boot/vmlinuz-0-rescue-$(cat /etc/machine-id){,.backup} mv /boot/initramfs-0-rescue-$(cat /etc/machine-id).img{,.backup} /etc/kernel/postinst.d/51-dracut-rescue-postinst.sh $(uname -r) /boot/vmlinuz-$(uname -r) }}} [[br]] == чтобы загрузка не запиналась на `fsck` в centos6 `/etc/sysconfig/autofsck`: {{{#!bash # autofsck config AUTOFSCK_OPT="-y" }}} `/etc/e2fsck.conf`: {{{#!bash # # disable mount and write time check on system boot # [options] broken_system_clock=1 [problems] # Superblock last mount time is in the future (PR_0_FUTURE_SB_LAST_MOUNT). 0x000031 = { preen_ok = true preen_nomessage = true } # Superblock last write time is in the future (PR_0_FUTURE_SB_LAST_WRITE). 0x000032 = { preen_ok = true preen_nomessage = true } }}} [[br]] == выбор ядра centos7 по-умолчанию в grub2 {{{#!bash awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg grub2-set-default 1 }}} [[br]] == работа с дисками без перегрузки в лилуксе * рескан новых дисков: {{{#!bash echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan }}} * раскан диска с изменившимися параметрами: {{{#!bash echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan }}} * удаление детачнутого диска: {{{#!bash echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete }}} [[br]] == распределение прерывания по ядром с помощью `irq affinity` {{{#!bash #!/usr/bin/env bash cpu=`/bin/grep processor /proc/cpuinfo | wc -l` c=0 for dir in rx tx; do for eth in 0 1; do for i in `seq 0 22`; do irq=`/bin/grep "eth${eth}-${dir}-${i}$" /proc/interrupts | awk -F : '{print $1}' | sed -e 's/ //g'` if [[ "x${irq}" == "x" ]]; then continue fi mask="$((1<<($c+0)))" echo mask: $mask, cpu: $c, irq: $irq printf "%x\n" $mask >/proc/irq/$irq/smp_affinity c=$((c+1)) if [[ $c -gt $cpu ]]; then c=0 fi done done done }}} [[br]]