amigo |
|
Темы:
35
Сообщения:
2126
Участник с: 05 февраля 2007
|
h4tr3dВсё проверил - всё работает. Инструкцию поправил. Пионера жалко, но не очень - одним арчеводом меньше, ничего страшного :lol: pioner14, с меня ящик сала :friends: h4tr3d, тогда может и журналируемая ФС не нужна?
Разберемся, голубчик!
|
pioner14 |
|
Темы:
8
Сообщения:
196
Участник с: 21 января 2009
|
h4tr3d Большое спасибо! и зачем ты пионера убил!? одним арчеводом меньшеПионера так просто не убьешь! :) Да ладно, Amigo ты ведь предупреждал. Еще один маленький опыт приобрел. :/ :) |
w00zy |
|
Темы:
20
Сообщения:
336
Участник с: 09 декабря 2008
|
давно использую pacman-cage, только fs в лоопе ext4 без журнала с синхронной записью.#!/bin/bash # # pacman-cage # myver='2.9.8' dbroot="/var/lib/pacman" pacmandb="/var/lib/pacman.db" usage() { echo "pacman-cage $myver" echo "usage: $0 [pacman_db_root]" echo echo "pacman-cage creates a loopbacked filesystem in a contigious file." echo "This will give better response times when using pacman" echo } die() { echo "pacman-cage: $*" >&2 exit 1 } die_r() { rm -f /tmp/pacman.lck die $* } if [ "$1" != "" ]; then if [ "$1" = "-h" -o "$1" = "--help" ]; then usage exit 0 fi dbroot=$1 fi if [ "`id -u`" != 0 ]; then die "You must be root to cage the database" fi # make sure pacman isn't running if [ -f /tmp/pacman.lck ]; then die "Pacman lockfile was found. Cannot run while pacman is running." fi # make sure pacman.db hasnt already been made if [ -f $pacmandb ]; then die "$pacmandb already exists!." fi if [ ! -d $dbroot ]; then die "$dbroot does not exist or is not a directory" fi # don't let pacman run while we do this touch /tmp/pacman.lck # step 1: sum the old db echo "==> md5sum'ing the old database..." find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.old echo "==> creating pacman.db loopback file..." dd if=/dev/zero of=$pacmandb bs=1M count=150 > /dev/null 2>&1 echo "==> creating ext2 -O dir_index -b 1024 -m 0 on $pacmandb..." yes | mke2fs -t ext4 -O ^has_journal -b 1024 -m 0 $pacmandb > /dev/null 2>&1 yes | tune2fs -o journal_data_writeback $pacmandb echo "==> creating temporary mount point /mnt/tmp-pacman.." mkdir /mnt/tmp-pacman echo "==> mounting pacman.db to temporary mount point..." mount -o loop $pacmandb /mnt/tmp-pacman echo "==> copying pacman database to temporary mount point..." cp -a /var/lib/pacman/. /mnt/tmp-pacman echo "==> unmounting temporary mount point..." umount /mnt/tmp-pacman echo "==> removing temporary mount point..." rmdir /mnt/tmp-pacman echo "==> moving old /var/lib/pacman to /var/lib/pacman.bak..." mv /var/lib/pacman /var/lib/pacman.bak echo "==> createing new pacman db mount point @ $dbroot..." mkdir $dbroot echo "==> Mounting new pacman db..." mount -o loop,sync,defaults,data=writeback $pacmandb $dbroot echo "==> md5sum'ing the new database..." find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.new echo "==> checking integrity..." diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1 if [ $? -ne 0 ]; then # failed, move the old one back into place umount $dbroot rm $pacmandb mv $dbroot.bak $dbroot die_r "integrity check FAILED, reverting to old database" fi echo "==> Updating /etc/fstab to reflect changes..." echo "$pacmandb $dbroot ext4 loop,sync,defaults,data=writeback 0 0" >> /etc/fstab rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new echo echo "Finished. Your pacman database has been caged!. May the speedy pacman be with you." echo exit 0 |
SmiGes |
|
Темы:
166
Сообщения:
836
Участник с: 04 августа 2009
|
способ интересный, но есть же pacman-optimize, который на один сектор винта все файлы бд пакетов переносит |
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
в один сектор?
systemd должен умереть.
|
w00zy |
|
Темы:
20
Сообщения:
336
Участник с: 09 декабря 2008
|
Похоже я что-то упустил :shock: |
amigo |
|
Темы:
35
Сообщения:
2126
Участник с: 05 февраля 2007
|
исходники pacman-optimize не смотрел, но осуждаю :D Думается мне, что он просто всё кеширует, а не с секторами дисковыми возится. Ведь для поддержки такой функциональности, он должен разбираться не только в ext*, но и других, более или менее нативных ФС.
Разберемся, голубчик!
|
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
Amigo это баш скрипт, достаточно простой ЗЫ rss пропускает посты.
systemd должен умереть.
|
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
Думается мне, что он просто всё кешируетДа нет, он просто собирает базу в один файл, грохает старую и разворачивает файл обратно на диск. А файловая система уже своими внутренними механизмами старается разместить копируемые файлы последовательно на диске, чем и достигается увеличение скорости доступа к базе. Говоря простыми словами, pacman-optimize дефрагментирует свою базу. |