Если получили ошибку вроде этой:
...
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
то переразбиения не произошло. Скорее всего диск оказался примонтированным. Такое наиболее вероятно, если раньше производились какие-то настройки и устанавливались программы, работающие с этим диском. В этом случае разбирайтесь с процессами, убивайте активно работающие с диском, отмонтируйте диски и повторяйте процедуру.
Переразбиваем второй диск (флешку):
Code:
fdisk /dev/scsi/host1/bus0/target0/lun0/part1
d - удалить существующие разделы (ориентируйтесь на подсказки fdisk).
n - создать новый раздел
p - создать primary partition
1 - первую partition
[Enter] - default 1
[Enter] - default 1014 - выделяем под первый раздел всё доступное пространство на флешке
w - сохранить новое разбиение диска и выйти из fdisk.
Форматируем диски.
Сначала флешку:
Code:
mke2fs -j /dev/scsi/host1/bus0/target0/lun0/part1
Теперь надо создать и включить swap, т.к. памяти роутера не хватает на форматирование больших объёмов.
Подмонтируем флешку как папку /opt:
Code:
mount -o sync,noatime,rw /dev/scsi/host1/bus0/target0/lun0/part1 /opt
Создаём swap-file 128 Mb на флешке:
Code:
dd if=/dev/zero of=/opt/swap.file bs=1M count=128
mkswap /opt/swap.file
Кому надо больше/меньше - можете поменять число после "count=". По моим наблюдениям, в обычном режиме работы торрента, нужно не менее 1 Мб на торрент. Сколько при хешировании - не отловил. Подозреваю, что больше. 50 торрентов на 128 Мб swap'а крутятся без проблем.
По отзывам, создавать swap необходимо только тем, кто не увеличивал объём памяти роутера до 128 Мб.
Включим swap:
Code:
/sbin/swapon /opt/swap.file
Теперь можно форматировать HDD:
Code:
mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part1
По окончании, на всякий случай, перезагружаемся:
(или, через web-интерфейс, кому удобнее) и снова входим на роутер через терминал (PUTTY).
3. Настройка.
Снова вручную монтируем флешку как папку /opt:
Code:
mount -o sync,noatime,rw /dev/scsi/host1/bus0/target0/lun0/part1 /opt
Создаём на флешке папку для заливки файлов по FTP:
Нюанс: пробуем зайти на роутер по FTP. Если видим папку backup, то переходим непосредственно к копированию файлов (см. ниже). Те, у кого, как у меня, флешка по умолчанию не видна по FTP, временно (после перезагрузки всё вернётся на свои места) монтируем её на место HDD:
Code:
mount -obind /opt /tmp/mnt/disc0_1
Скачиваем архив из первого поста этой темы. У кого архив оказывается "битым", скачайте другим браузером. Причина этого явления мне неизвестна.
Через FTP копируем в папку backup все файлы из архива, приложенного к этому посту. Файлы из архива не открывайте (вернее не сохраняйте) в Windows, а то они потом работать не будут.
Создаём очень важную папку:
Code:
mkdir -p /usr/local/sbin
и копируем в неё наши конфигурационные файлы:
Code:
cp /opt/backup/post-boot /usr/local/sbin/
cp /opt/backup/post-firewall /usr/local/sbin/
cp /opt/backup/pre-shutdown /usr/local/sbin/
Ещё нюанс: если накопители определились как у меня, то командуем:
Code:
cp /opt/backup/post-mount1 /usr/local/sbin/post-mount
Если наоборот (см. п.2), то
Code:
cp /opt/backup/post-mount2 /usr/local/sbin/post-mount
Делаем их исполняемыми:
Code:
chmod +x /usr/local/sbin/p*
Копируем ещё один очень нужный файлик:
Code:
cp /opt/backup/.files /usr/tmp/local/
Сохраняем всё, что наваяли, в памяти роутера и перезагружаемся:
Code:
flashfs save && flashfs commit && flashfs enable && reboot
В итоге флешка будет использоваться как накопитель для установленных программ и файла подкачки, а HDD будет работать исключительно для хранения данных пользователя.
Такой выбор обусловлен, в частности тем, что Oleg в своей теме предупреждает, что если вынуть из роутера накопитель, на котором смонтирован раздел swap, машинка зависнет. В данном случае мы создаём swap-раздел (вернее swap-файл) на флешке, которую вынимать из роутера ни к чему - объём её, по сегодняшним меркам, мизерный, на ней только установленные программы, настройки и swap. Зато HDD можно отключать, и заменять когда заблагорассудится (только не забудьте отмонтировать диск перед отсоединением кабеля).
Swap оформлен как файл, а не раздел, исходя из соображений гибкости. Захочется уменьшить/увеличить/выкинуть - не надо переразбивать и форматировать накопитель (да и не каждая флешка позволит сотворить с собой такое). Достаточно убить swap-файл и создать новый.
Внимание! Есть наблюдения (редкие, но есть), что активное использование flash-памяти очень сильно сокращает срок её службы. Были случаи, когда новая флешка выходила из строя за два месяца работы. У меня, на момент написания этих строк, всё работает уже десятый месяц без сбоев. Зависимости срока службы флешки от её новизны, объёма, производителя флешки не выявлено. Если боитесь за флешку - переносите swap на HDD.
Снова запускаем терминал.
Настраиваем установщик программных пакетов:
Code:
mkdir -p /opt/tmp/ipkg
ipkg.sh update
ipkg.sh install ipkg-opt
ipkg update
Сохраняем изменения и перезагружаемся:
Code:
flashfs save && flashfs commit && flashfs enable && reboot
4. Установка web-сервера.
В терминале:
Установка собственно web-сервера lighttpd:
Code:
ipkg install lighttpd
Установка php для web-интерфейса:
Code:
ipkg install php-fcgi
Копируем подправленные конфигурационные файлы в соответствующие папки:
Code:
cp /opt/backup/lighttpd.conf /opt/etc/lighttpd/
cp /opt/backup/10-php-fcgi.conf /opt/etc/lighttpd/conf.d/
Ну и как обычно:
Code:
flashfs save && flashfs commit && flashfs enable && reboot
После перезагрузки роутера идём в браузере на ББ по адресу: http://ip.router:8081, где ip.router - IP-адрес Вашего роутера. Должно появиться сообщение «lighttpd server is running.»
5. Установка torrent-клиента.
Создаём нужные папки:
/tmp/harddisk/torrent/dl - в эту папку кладутся .torrent-файлы
/tmp/harddisk/torrent/work - здесь будут сами скачиваемые/раздаваемые файлы.
/tmp/harddisk/torrent/session - рабочая папка для rTorrent.
Code:
mkdir -p /tmp/harddisk/torrent/dl
mkdir -p /tmp/harddisk/torrent/work
mkdir -p /tmp/harddisk/torrent/session
Устанавливаем необходимые пакеты:
Code:
ipkg install rtorrent
ipkg install adduser
ipkg install procps
ipkg install grep
ipkg install screen
ipkg install gawk
Создаём домашнюю папку для пользователя p2p, от имени которого будет запускаться и работать rTorrent:
Code:
mkdir -p /opt/home/p2p
Добавляем в систему самого пользователя p2p:
Code:
adduser --home /opt/home/p2p p2p
Вводим любой пароль. Может никогда не понадобиться, но задать надо.
Делаем пользователя p2p владельцем его домашней папки и рабочих папок rTorrtent:
Code:
chown p2p /opt/home/p2p
chown p2p /tmp/harddisk/torrent/dl
chown p2p /tmp/harddisk/torrent/work
chown p2p /tmp/harddisk/torrent/session
Копируем подправленные файлы в соответствующие папки и определяем для них хозяев и права доступа:
Code:
cp /opt/backup/rtorrent.conf /opt/etc/
chmod a+x /opt/etc/rtorrent.conf
cp /opt/backup/S99rtorrent /opt/etc/init.d/
chmod a+x /opt/etc/init.d/S99rtorrent
cp /opt/backup/.profile /tmp/local/root/
cp /opt/backup/.profile /opt/home/p2p/
chown p2p /opt/home/p2p/.profile
IDDQD
:
Code:
flashfs save && flashfs commit && flashfs enable && reboot
После перезагрузки снова лезем в терминал и даём команду:
Если в списке процессов есть строчка со словом rtorrent - всё хорошо. Если нет - причину можно искать долго. Возможно самым простым вариантом будет сбросить все настройки и начать установку заново, более внимательно читая сообщения от роутера.
Сохранение настроек Инета: System Setup => Setting Management => Save As a File ...
Сброс настроек всего роутера: System Setup => Factory Default => [Restore]
Восстановление настроек Инета: System Setup => Setting Management => Load From a File ...
6. Установка web-интерфейса.
В терминале:
Code:
tar -xvz -f /opt/backup/rtorrent.tar.gz -C /opt/share/www/
На ББ в браузере идём по адресу http://ip.router:8081/rtorrent/
Должен показаться web-интерфейс.
Можно пользоваться.
n. Как пользоваться.
Самый надёжный способ - залить .torrent-файл по FTP или через Samba («Сетевое окружение») в папку /torrent/dl.
Или можно воспользоваться кнопкой web-интерфейса, но тогда, в случае каких-либо неполадок, есть риск, что rTorrent потеряет закачку.