Меню

Openwrt проверка диска на ошибки

This article refers to Smartmontools. You can install it by

opkg update
opkg install smartmontools

To save flash space there is no drivedb included in the OpenWRT package of smartmontools. The automatic update of drive.db described here is missing as well. In case you can affort/waste ~215kB (12-April-2020) you can download the current database from GIT Drivedb.h.
Transfer it via SCP or WinSCP and place it at

mkdir /usr/share/smartmontools
mv drivedb.h /usr/share/smartmontools/drivedb.h

It allows you to monitor the health of an external storage device. This example assumes an SSD mounted at /dev/sda

smartctl -a /dev/sda
 
smartctl 7.0 2018-12-30 r4883 [armv5tel-linux-4.14.162] (localbuild)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
 
=== START OF INFORMATION SECTION ===
Model Family:     Marvell based SanDisk SSDs
Device Model:     SanDisk SSD PLUS 240GB
Serial Number:    1944AA800xxx
LU WWN Device Id: 5 001b44 8b18d5803
Firmware Version: UF2204RL
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3, ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Apr 13 09:28:31 2020 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       215
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       27
165 Total_Write/Erase_Count 0x0032   100   100   000    Old_age   Always       -       34
166 Min_W/E_Cycle           0x0032   100   100   ---    Old_age   Always       -       1
167 Min_Bad_Block/Die       0x0032   100   100   ---    Old_age   Always       -       10
168 Maximum_Erase_Cycle     0x0032   100   100   ---    Old_age   Always       -       3
169 Total_Bad_Block         0x0032   100   100   ---    Old_age   Always       -       106
170 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Avg_Write/Erase_Count   0x0032   100   100   000    Old_age   Always       -       1
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   ---    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   063   042   000    Old_age   Always       -       37 (Min/Max 15/42)
199 SATA_CRC_Error          0x0032   100   100   ---    Old_age   Always       -       0
230 Perc_Write/Erase_Count  0x0032   100   100   000    Old_age   Always       -       9 20 9
232 Perc_Avail_Resrvd_Space 0x0033   100   100   005    Pre-fail  Always       -       100
233 Total_NAND_Writes_GiB   0x0032   100   100   ---    Old_age   Always       -       136
234 Perc_Write/Erase_Ct_BC  0x0032   100   100   000    Old_age   Always       -       274
241 Total_Writes_GiB        0x0030   100   100   000    Old_age   Offline      -       131
242 Total_Reads_GiB         0x0030   100   100   000    Old_age   Offline      -       190
244 Thermal_Throttle        0x0032   000   100   ---    Old_age   Always       -       0

Permalink

Cannot retrieve contributors at this time


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

#!/bin/sh
# Copyright 2010 Vertical Communications
# Copyright 2012 OpenWrt.org
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
fsck_e2fsck() {
set -o pipefail
e2fsck -p «$device« 2>&1 | logger -t «fstab: e2fsck ($device)«
local status=«$?«
set +o pipefail
case «$status« in
0|1) ;; #success
2) reboot;;
4) echo «e2fsck ($device): Warning! Uncorrected errors.«| logger -t fstab
return 1
;;
*) echo «e2fsck ($device): Error $status. Check not complete.«| logger -t fstab;;
esac
return 0
}
fsck_ext2() {
fsck_e2fsck «$@«
}
fsck_ext3() {
fsck_e2fsck «$@«
}
fsck_ext4() {
fsck_e2fsck «$@«
}
append libmount_known_fsck «ext2«
append libmount_known_fsck «ext3«
append libmount_known_fsck «ext4«


0

1

root@OpenWrt:~# smartctl --device=auto -a /dev/sda
smartctl 5.40 2010-10-16 r3189 [mips-openwrt-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

/dev/sda: Unknown USB bridge [0x14cd:0x6116 (0x200)]
Smartctl: please specify device type with the -d option.

Use smartctl -h to get a usage summary

hdd — WD5000LPVT SATA-II

Так же если есть возможность узнать температуру другим способом, напишите 🙂

Super Top generic enclosure Cypress 0x14cd:0x6116 Super Top / USB 2.0 SATA BRIDGE -d usbcypress Linux

использование параметра -d usbcypress ведет к:

root@OpenWrt:~# smartctl -d usbcypress -i /dev/sda
smartctl 5.40 2010-10-16 r3189 [mips-openwrt-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Smartctl: Device Read Identity Failed (not an ATA/ATAPI device)

A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

Но на здоровье диска проверяет, в чем проблема то?


root@OpenWrt:~# smartctl --device=scsi -H /dev/sda
smartctl 5.40 2010-10-16 r3189 [mips-openwrt-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

SMART Health Status: OK

Использование параметра -T permissive приводит к:

root@OpenWrt:/etc/defconfig# smartctl --device=scsi -i -T permissive /dev/
sda
smartctl 5.40 2010-10-16 r3189 [mips-openwrt-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Device: WDC WD50 00LPVX-55V0TT0   Version: 
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
>> Terminate command early due to bad response to IEC mode page

Описание часто используемых команд в OpenWrt linux:

echo — Вывод текста или значений переменных
uname -a — Показать версию ядра Linux;
cat /proc/cpuinfo — Показать информацию о железе
cat /proc/meminfo — Показать расширенную информацию о занимаемой оперативной памяти
ls /dev — Показать все устройства в системе
id — Показывает сводную информацию по текущему пользователю (логин, UID, GID)
cat — Просмотр содержимого файла
strings — Поиск текстовых строк в файле
cut — Удаление определённых секций из каждой строки файла
grep — Поиск подстрок в файлах

ps — Список запущенных процессов
killall имя прцесса — Убить процесс по названию
free — Информации об использовании памяти
fdisk -l Информация о всех подключенных дисках;
blkid — Выводит UUID информацию всех доступных накопителей в системе;
df Показывает свободное и занятое место в разделах;
mkfs.ext4 /dev/sda1 — Форматирует диск sda1 в FS ext4
mount /dev/sda1 /mnt — Монтирует раздел /dev/sda1 к точке монтирования /mnt;
mount — Показывает полную информацию о примонтированных устройствах;
umount /mnt — Отмонтирует раздел от точки монтирования /mnt;
clear — Очистить окно терминала;
reboot — Перезагрузить устройство;
exit — Завершить сеанс;
sleep 10 — Пауза 10 сек
passwd — Меняет пароль текущего пользователя;
date — Показывает текущую дату и время;
pwd — Показывает текущий путь;
ls — Показывает список файлов и каталогов в текущей папке;
mkdir /test — Создание папки с именем test;
rmdir /test — Удаление папки с именем test;
rm -i stats.gif — Удаление файла с именем stats.gif;
touch /tmp/myfile.txt — Создать фаил
chmod 777 /tmp/myfile.txt — Изменить права доступа к файлу
find — Поиск файлов или каталогов find / -name ‘*fil*’ -print
mv — Перемещение и переименовывание файлов
cd /tmp — Перейти в указанную папку;
wget htp://cyber-place.ru/images/misc/stats.gif — Скачать файл в текущую папку
chgrp — Смена группы
chown — Смена владельца файла или каталога
cp — Копирование файлов и каталогов (синтаксис : cp что куда )

stty -F /dev/ttyATH0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts — Изменить параметры UART порта

opkg update – обновляет список пакетов (загружая его из репозитория, указанных в конфигурационном файле);
opkg upgrade – обновляет все установленные пакеты;
opkg install <имя_пакета> – устанавливает пакет (в качестве параметра может принимать имя пакета, а также путь или HTTP URL, указывающий на файл пакета);
opkg remove <имя_пакета|регулярно� �_выражение> – удаляет один или несколько пакетов;
opkg list – выводит на экран полный список пакетов;
opkg list-installed – выводит на экран список установленных пакетов.

cat /home/primer- Показать содержимое файла /home/primer ;
vi /folder/filename — открыть файл в редакторе vi

i — включить режим редактирования
[Esc] — выйти из режима редактирования

u — undo (отмена)
CTRL + R — redo

:w [Enter] — сохранить внесенные изменения.

:q [Enter] — выйти без сохранения изменений
:wq [Enter] — сохранить внесенные изменения и выйти.

dd — удалет строку на которой находится курсор
x — удалет символ на котором находится курсов

[y] — копирует строку в буфер
[P] — вставляет скопированную строку после той, на которой в текущий момент находится курсор

echo $REMOTE_ADDR — Посмотреть Ваш IP

Когда, при загрузке, операционная система сообщает о наличии ошибок в файловой системе на одном из разделов, то заслуживает незамедлительно сделать в linux проверку диска на ошибки. Любой уважающий себя user не должен забывать, что периодическая проверка жестких дисков на битые сектора и проверка атриторен на ошибки является примером здравого смысла. Для проверки разделов жесткого диска советуем использовать утилиту FSCK (file system consistency check), поскольку утилита FSCK предустановленна на основной массе операционных систем семейства Linux.

Примером хорошего тона и здравого резона является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная испытание диска на ошибки записи и т.п. Разберёмся что такое битые сектора. Бэд-сектор, Повреждённый сектор — сбойный (не читающийся) или не внушающий доверие сектор диска; кластер, содержащий сбойные сектора, или кластер помеченный таковым в текстурах файловой системы операционной системой. Следовательно, если в битом секторе были этые, то их ещё возможно восстановить, пока битых секторов не стало слишком много для конкретного файла. Собрать список битых секторов можно с помощью команды badblocks.

Содержание статьи

  • 1 Проверка диска на колоченные секторы в linux с помощью badblocks
  • 2 Исправление ошибок файловой системы fsck
  • 3 Проверка диска на битые секторы в linux с поддержкою smartmontools

Проверка диска на колоченные секторы в linux с помощью badblocks

Badblocks — стандартная утилита Linuх для проверки (Тестирование Инвентаризация Допинг-контроль Проверка подлинности Служебная проверка Проверка орфографии Проверка на дорогах Камеральная налоговая проверка Выездная налоговая проверка Проверка) на колоченные секторы. Она устанавливается по-умолчанию практически в любой дистрибутив и с ее помощью можно проверить как твердый диск, так и внешний накопитель. Для начала давайте посмотрим, какие накопители подключены к ушей системе и какие на них имеются разделы. Для этого нам нужна еще одна стандартная утилита Linux — fdisk.

Собрать список битых секторов можно с помощью команды badblocks.
Делается это так:

sudo badblocks -v /dev/hda1 > ~/badblocks.list

Где /dev/hda1 — это разоблачил диска, что вы хотите проверить.

Желательно делать проверку в однопользовательском режиме, когда это не внешний диск. Тогда его просто стоит отмонтировать. После этого мы можем швырнуть утилиту fsck, явно указав ей список битых секторов для того, чтобы она их подметить как «битые» и попыталась восстановить с них данные. Делается это так:

sudo fsck -t ext4 -l ~/badblocks.list /dev/hda1

Где ext4 — это тип файловой системы нашего разоблачила диска, а /dev/hda1 — сам раздел диска.

Естественно, что выполнять команды нужно с правами суперпользователя.

sudo fdisk -l

Метеопараметром -l мы говорим утилите fdisk, что нам нужно показать список разделов и выйти. Теперь, когда мы знаем, какие разделы у нас есть, мы можем проверить их на битые секторы. Для этого мы станем использовать утилиту badblocks следующим образом:

sudo badblocks -v /dev/sda1 > badsectors.txt

Если же в итоге были найдены битые секторы, то нам надо дать указание операционной системе не вписывать в них информацию в будущем. Для этого нам понадобятся утилиты Linux для работы с файловыми системами:

e2fsck. Когда мы будем исправлять раздел с файловыми система Linux ( ext2,ext3,ext4).
fsck. Если мы станем исправлять файловую систему, отличную от ext.

Исправление ошибок файловой системы fsck

В моей а не твоей статье «Проверка файловой системы на ошибки с помощью fsck на Linux» я расскажу как возможно проверить файловую систему на вашей ОС в Linux. Некоторым системам необходим пароль root дабы запустить fsck или других аналогичных утилит, когда не могут загрузить полностью ОС. В данном случае стоит выполнить проверку диска загрузившись в single-user mode , либо – загрузившись с иного диска. Fsck расшифровывается как «файловая система Проверка целостности» (file system consistency check).

На основной массе систем, Fsck запускается во время загрузки, если определенные условия. Код выхода ворачивается, когда несколько файловых систем которая проверяется побитовое ИЛИ (OR) для каждой файловой системы, какая проверяется. В действительности, Fsck — это просто фронт-энд для различных проверочных утилит для файловых систем (fsck.fstype), какие доступны на Linux. Файловая система (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство) для конкретных проверок ищет сначала в /sbin, а потом в /etc/fs и /etc/, и, наконец в директориях, перечисленных в переменной PATH (среда переменного кружения).

Запуск и исполнение FSCK на смонтированной файловой системе может привести к повреждению данных, поэтому применяйте данный материал на свой страх и риск.

Автор не несет ответственности за любой вред, который вы можете причинить. Fsck расшифровывается как «File System ChecK», то есть «испытание файловой системы» и используется для проверки и исправления файловых систем в Linux. В качестве верифицируемой ФС может быть задан раздел (например, /dev/sda1 или /dev/sda8), точка монтирования (/, /home, /usr), или же точна тома или UUID (например, UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd или LABEL=root).

Как обычно fsck пытается параллельно проверять файловые системы на нескольких разделах для уменьшения времени, нужного для проверки всех файловых систем. Arch Linux при загрузке автоматически будет бросать fsck для проверки систем, если выполняется одно из требований (например, 180 суток работы системы без проверки разделов или 30 монтирований оных). Обычно нет необходимости переопределять проем между проверками.

Для того, чтобы проверить диск в Linux на наличие опечаток файловой системы нам необходимо сначала выяснить имена файловых систем командой:

df -h

Дальше нам необходимо размонтировать файловую систему, которую мы будем проверять командой:

umount /dev/hda1

И сейчас запускаем утилиту проверки файловой системы и исправления ошибок на ней командой

fsck /dev/hda1

В том варианте, когда не представляется возможным размонтировать файловую систему, к примеру, когда нужно испробовать корневую файловую систему (/). Перезагрузиться в однопользовательском режиме (команда reboot, и при загрузке необходимо передать ядру параметр single). Перемонтировать корневую файловую систему в режиме «лишь чтение» командой.

mount -о remount rо -t ext3 /

Здесь параметр -о команды mount указывает на присутствие дополнительных опций. Опция remount rо означает перемонтировать в режиме «только чтение». Метеопараметр -t указывает тип файловой системы – ext3, а последний параметр – указывает что это корневая файловая система (/).

И сейчас проверить файловую систему

fsck -y -f -c /dev/hda1

Проверка диска на битые секторы в linux с поддержкою smartmontools

Теперь давайте рассмотрим более современный и надежный способ проверить диск на колоченные секторы linux. Современные накопители ATA/SATA ,SCSI/SAS,SSD имеют встроенную систему самодисциплины S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology, Технология самоконтроля, анализа и отчетности), которая изготовляет мониторинг параметров накопителя и поможет определить ухудшение параметров работы накопителя на ранешних стадиях. Для работы со S.M.A.R.T в Linux есть утилита smartmontools. Давайте перейдем к работе с утилитой. Включим следующую команду с параметром -H,чтобы утилита показала нам информацию о состоянии накопителя:

sudo smartctl -H /dev/sda1

Как видим, проверка диска («круглое блюдо») — круг (низкий цилиндр) или предмет в виде круга) на битые секторы linux завершена и утилита говорит нам, что с накопителем все в распорядке! Дополнительно, можно указать следующие параметры -a или —all, чтобы получить еще больше информации о накопителе, или -x и —xall, дабы просмотреть информацию в том числе и об остальных параметрах накопителя.

Подготовка прошивки OpenWRT к подключению USB-диска

Поддержка USB прошивкой OpenWRT

Для поддержки USB-накопителей Вам необходимо либо собрать прошивку с включением следующих пакетов

  • kmod-usb-core
  • kmod-usb-ohci
  • kmod-usb-storage
  • kmod-usb2

либо доустановить их отдельно.

Установка производится через веб-интерфейс на странице Система-Программное обеспечение, либо классическим способом через терминал (telnet/SSH):

opkg update

opkg install kmod-usb-core

opkg install kmod-usb-ohci

opkg install kmod-usb-storage

opkg install kmod-usb2

Есть еще третий способ — запихать поддержку прямо в ядро прошивки, но это в большинстве случаев лишнее.

Поддержка файловых систем прошивкой OpenWRT

OpenWRT, в отличии от своего собрата DD-WRT в теории поддерживает все возможные файловые системы.
Для этого служат пакеты, например:

  • kmod-fs-ext4 — поддержка файловых систем ext2, ext3 и ext4
  • kmod-fs-vfat — поддержка файловой системы fat32

и еще парочка других, но менее востребованных.
Тут всё так же — либо через веб-интерфейс LuCI, либо через терминал,
либо намертво запихать в ядро. Не буду углубляться — разберетесь на
примере предыдущего пункта. всё так же.

Подготовка USB-флешки/диска

Если вы планируете использовать флешку как хранилище для файлов, то, в
принципе, Вам подойдет любая файловая система. Однако будьте осторожны,
в файловой системе Fat32 ограничение по максимальному
размеру файла составляет около 4гб. Этого не всегда достаточно. У
остальных перечисленных файловых систем это ограничение на несколько
порядков выше, что уже не создаст проблем.
Если Вы планируете использовать накопитель как место для установки
дополнительных пакетов (samba, например), то вы должны ограничиться
списком ext2, ext3, ext4. На остальные системы программы просто не установятся.
Как разметить?
Основываясь на личном опыте предлагаю Вам следующую схему. Наиболее оптимальный вариант:
Раздел 1 / тип swap / размер 128 мб — раздел подкачки.
Раздел 2 / тип ext4 / размер 1 гб — раздел для установки пакетов.
Раздел 3 / тип ext4 / размер — вся оставшаяся область на диске — раздел для прочих файлов.

Разметка USB-флешки/диска в Linux

В OpenWRT есть проблема с монтированием дисков в некоторых случаях,
когда они размечены не от имени пользователя root, по-этому используем sudo с флагом -i
Подключаем флешку/диск к компьютеру и приступаем к разметке и форматированию.
У меня флешка подключилась как /dev/sdf

Запустившись fdisk просит Вас ввести команду. Последовательность команд примерно следующая.

  1. o — создаем новую таблицу разделов, удалив всё что было
  2. n — создаем первый раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 128мб — +128M
  3. n — создаем второй раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 1Гб — +1G
  4. n — создаем третий раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор — по умолчанию
  5. w — сохраняем изменения

Создание файловых систем на USB-флешке/диске

Сначала завершим создание раздела подкачки:

Теперь создадим файловые системы ext4 на втором и третьем разделе на флешке:

sudo -i mkfs.ext2 /dev/sdf2

sudo -i mkfs.ext4 /dev/sdf3

Ждем завершение процедуры форматирования и подключаем USB-носитель к роутеру.

Подготовка OpenWRT к работе с USB-носителями

Для монтирования USB-флешек и USB-жестких дисков в OpenWRT необходимо выполнить три условия

  1. Поддержка USB устройств ядром
  2. Поддержка файловых систем ядром
  3. Установлен пакет block-mount

О первых двух пунктах было сказано в начале статьи. По поводу третьего — всё просто:

opkg update

opkg install block-mount

Монтирование USB-флешек/дисков в OpenWRT

Монтировать можно через WEB-интерфейс LuCI, однако это скучно, неинтересно и, на данный момент, не дает всех возможностей.
Дело в том, что с недавнего момента логика монтирования в overlay поменялась, а LuCI до сих пор поддерживает старый стандарт.
Я Вам поведаю о монтирование через терминал.
Итак, подключаемся к устройству через SSH или Telnet и приступаем.

Настройка fstab в OpenWRT

Настройки fstab в OpenWRT хранятся в файле /etc/config/fstab и, в отличии от десктопного Linux, придерживаются стандарта uci. Однако сложного в них ничего нет.
Чтобы не создавать файл с нуля — воспользуемся утилитой block detect

block detect >> /etc/config/fstab

Посмотрим, что у нас создалось по умолчанию:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

config 'global'

        option  anon_swap       '0'

        option  anon_mount      '0'

        option  auto_swap       '1'

        option  auto_mount      '1'

        option  delay_root      '5'

        option  check_fs        '0'

config 'swap'

        option  device  '/dev/sda1'

        option  enabled '0'

config 'mount'

        option  target  '/mnt/sda2'

        option  uuid    '25f9a5d2-8743-4fe0-b91c-c1088887b637'

        option  enabled '0'

config 'mount'

        option  target  '/mnt/sda3'

        option  uuid    '7725b029-51ea-44e6-898f-2987e9b9bbd8'

        option  enabled '0'

Для начала включим автомонтирование swap-раздела на USB-HDD/USB-флешке.
Для этого в блоке global присвоим опции auto_swap значение 1.
А так же в блоке swap опции enabled значение 1.

1

2

3

4

5

6

config 'global'

        option  auto_swap       '1'

config 'swap'

        option  device  '/dev/sda1'

        option  enabled '1'

Далее настроим монтирование остальных разделов.
Второй раздел — в точку монтирования /overlay, для расширения памяти устройства для установки пакетов и прочих манипуляций.
Третий раздел — в точку монтирования /mnt/usb (вместо usb может быть что угодно, называйте как хотите), для хранения ваших файлов.
Для этого в файл fstab вносим следующие правки

1

2

3

4

5

6

7

8

9

10

11

12

13

config 'global'

        option  auto_mount      '1'

        option  delay_root      '5'

config 'mount'

        option  target  '/overlay'

        option  uuid    '25f9a5d2-8743-4fe0-b91c-c1088887b637'

        option  enabled '1'

config 'mount'

        option  target  '/mnt/usb'

        option  uuid    '7725b029-51ea-44e6-898f-2987e9b9bbd8'

        option  enabled '1'

Сохраняем файл, но пока перезагружаться рано. Надо подготовить overlay-раздел на флешке.

Подготовка overlay-раздела на USB-диске

Итак, мы будем использовать второй раздел на нашем USB-диске/флешке.
Для этого монтируем раздел во временный каталог

mkdir /mnt/sda2

mount /dev/sda2 /mnt/sda2

Переносим содержимое каталога /overlay на подготавливаемый раздел

tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -

И теперь можем смело перезагружаться.

Проверка результатов работы fstab

Если вы настроили всё верно, то команда df -h должна выдать примерно следующие результаты

df -h

Filesystem                Size      Used Available Use% Mounted on

rootfs                  975.9M      1.4M    907.3M   0% /

/dev/root                 5.5M      5.5M         0 100% /rom

tmpfs                    14.4M    244.0K     14.2M   2% /tmp

/dev/sda2               975.9M      1.4M    907.3M   0% /overlay

overlayfs:/overlay      975.9M      1.4M    907.3M   0% /

tmpfs                   512.0K         0    512.0K   0% /dev

/dev/sda3                 6.2G     14.4M      5.8G   0% /mnt/usb

Список пакетов, которые следует установить дополнительно

для помощи хакерам хотящим взломать ваш роутер

облегчения настройки маршрутизатора:)

пакет

утилиты

имя

назначение

имя

назначение

usbutils просмотр доступных устройств usb
usbreset сброс конкретного устройства usb
wireless-tools iwconfig настройка wifi
 iwlist получение дополнительной информации о состоянии wifi
iwpriv настройка параметров wifi зависящих от драйвера
iwinfo получение информации о wifi из разных мест
kmod-nls-cp1251 поддержка кодовой страницы windows
kmod-nls-cp866 поддержка кодовой страницы dos
kmod-nls-koi8r поддержка кодовой страницы кои8р
kmod-nls-utf8 поддержка unicode
wput передача файлов с роутера
joe редактор с командами похожий на DOSовские
kmod-fs-msdos поддержка fat (диски DOS)
kmod-fs-ntfs поддержка NTFS (дисков windows NT/XP)
kmod-fs-vfat поддержка VFAT (дисков windows 98/ME)
dosfsck проверка разделов DOS на ошибки dosfsck
fsck.msdos
fsck.vfat  
mkdosfs форматирование раздела DOS mkdosfs  
mkfs.msdos  
mkfs.vfat  
dosfslabel просмотр или изменение метки раздела DOS
ntfs-3g драйвер ntfs с возможностью записи ntfs.probe пробное монтирование раздела NTFS
ntfs-3g монтирование ntfs раздела
ntfs-3g-utils команды манипуляции разделами ntfs lowntfs-3g драйвер ntfs без поддержки альтернативных потоков
ntfs-3g-secaudit вывод сведений о правах доступа и их проверка
ntfs-3g-usermap создает карту соответствий аккаунтов windows пользователям openwrt
ntfscat команда cat для файлов на разделе ntfs
ntfscluster показывает имена файлов размещенных на указанном фрагменте ntfs раздела
ntfscmp сравнение разделов ntfs 
ntfsfix проверка ntfs раздела 
ntfsinfo показывает атрибуты файлов на разделе ntfs полностью
ntfsls показ содержимого каталога 
ntfsprogs_ntfs-3g расширенные команды ntfs, для установки совместно с ntfs-3g-utils необходимо в каталоге /usr/bin удалить файлы: ntfscmp, ntfsinfo, ntfscluster, ntfscat, ntfsls, ntfsfix. mkfs.ntfs создание/форматирование ntfs раздела
ntfscat команда cat для файлов на разделе ntfs
ntfscluster показывает имена файлов размещенных на указанном фрагменте ntfs раздела
ntfscmp сравнение разделов ntfs 
ntfsfix проверка ntfs раздела 
ntfsinfo показывает атрибуты файлов на разделе ntfs полностью
ntfsls показ содержимого каталога 
mkntfs форматирование раздела ntfs
ntfsclone копирование раздела ntfs
ntfscp сравнение разделов ntfs
ntfslabel просмотр или изменение метки раздела ntfs
ntfsresize изменение размера раздела ntfs
ntfsundelete восстановление файлов на разделе ntfs
e2fsprogs программы работы с разделами linux e2fsck  проверка разделов linux 
mke2fs создание разделов ext2/ext3/ext4 
resize2fs изменение размера раздела linux без потери данных 
tune2fs Изменение размера резервируемого пространства или подключение/отключение журнала на разделах linux.

Для повышения надежности, после ее установки лучше выполнить команды.
tune2fs -O dir_index, filetype, flex_bg,  has_journal, resize_inode, mmp, uninit_bg

uci set fstab.@mount[0].fstype=ext4

uci commit fstab

sync

mkdir /tmp/OnBoardOverlay

mount -t jffs2 /dev/mtdblock3 /tmp/OnBoardOverlay

cp /etc/config/fstab /tmp/OnBoard/etc/config

sync

umount /tmp/OnBoard/Overlay

rmdir /tmp/OnBoardOverlay

/etc/init.d/fstab restart

cfdisk fdisk с псевдографическим интерфейсом
mc Norton Commander для linux 
htop псевдографический просмотр запущенных процессов 
diffutils команды сравнения файлов cmp  побайтное сравнение файлов
diff построчное сравнение файлов 
diff3 построчное сравнение трех файлов
sdif обработка результата работы команды diff 
unrar распаковка архивов rar 
unzip распаковка архивов zip  funzip распаковка из stdin в stdout
unzip распаковка, проверка и листинг архива
unzipsfx создание sfx архива из zip файла
zipgrep проверка содержимого архива на совпадение со строкой поиска 
zipinfo показ информации об архиве и упаковщике его создавшем
gzip работа с архивами gz/z gunzip распаковка файла
gzip упаковка файла
zcat распаковка файла с выводом его содержимого на экран
bzip2 упаковщик и распаковщик bz2
tar объединение нескольких файлов в один или восстановление из файла tar файлов
getopt расширение «батников»: разбор командной строки
gawk GNU awk gawk awk
grcat дамп базы данных групп
igawk awk с командой «@include»
pgawk команда «awk —profile»
pwcat слияние базы паролей
dialog диалоги для shell скриптов
rename переименование группы файлов
less расширенное  more  less  
ldd показывает требуемые для запуска динамические библиотеки
iconv преобразование кодировки текстового файла
psmisc манипулирование содержимом /proc    pstree просмотр дерева процессов 
prtstat вывод статистики процессов 
killall уничтожение процессов по имени 
fuser показ какой процесс открыл файл
memtester проверка ОЗУ 
md5deep вычисление контрольных сумм хэшов).  hashdeep  проверка файлов и каталогов на совпадение с хэшем
md5deep вычисление/сревнение md5 
sha1deep вычисление/сравнение sha-1
sha256deep вычисление/сравнение sha-256
tigerdeep вычисление/сравнение tiger 
whirlpooldeep вычисление/сравнение whirlpool
lsof показывает список открытых файлов (List Open Files)
screen создание виртуальных консолей, необходимо для выполнения резидентов.
Для показа как вызвать справку и номеров открытых окон, надо добавить следующие строки в файл /etc/screenrc

hardstatus off
hardstatus alwayslastline
hardstatus string ‘Ctr+a-? — help | %-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<‘

bash стандартный командный интерпретатор linux
luci Web морда роутора. После установки необходимо выполнить две команды:
/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable
luci-i18n-russian русификатор luci

Для их установки создал такой скрипт
#!/bin/ash
#*************************************************************
#* скрипт установки дополнительных программ и преобразования *
#* раздела /overlay с ext2 в ext4                            *
#* 30 декабря 2013 года, zepete.livejournal.com              *
#*************************************************************
if ! lsblk | grep -E "sd[[:lower:]][[:digit:]]+ +[[:digit:]]+:[[:digit:]]+
 +1 +[[:digit:]]+[.]{0,1}[[:digit:]]*[KMG] +0 +part /overlay" > /dev/null
then
 echo '***************************************************'
 echo '* ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR *'
 echo '*               No external overlay               *'
 echo '***************************************************'
 exit 1
fi
if ! opkg update > /dev/null
then
echo '***************************************************'
echo '* ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR *'
echo '* Error opkg update                               *'
echo '***************************************************'
exit 1
fi
overlay=$(df | awk '$6=="/overlay"{print $1}')
if [ -z $overlay ]
then
echo '***************************************************'
echo '* ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR *'
echo '* Can not get name overlay partition              *'
echo '***************************************************'
exit 1
fi
opkg install tune2fs
tune2fs -j $overlay
tune2fs -O extents,dir_index,filetype,
flex_bg,mmp,uninit_bg $overlay
uci set fstab.@mount[0].fstype=ext4
uci set fstab.@mount[0].enabled_fsck=1
uci commit fstab
sync
mkdir /tmp/OnBoardOverlay
mount -t jffs2 /dev/mtdblock3 /tmp/OnBoardOverlay
cp /etc/config/fstab /tmp/OnBoardOverlay/etc/config
sync
umount /tmp/OnBoardOverlay
rmdir /tmp/OnBoardOverlay
opkg install usbutils usbreset wireless-tools iwinfo
opkg install kmod-nls-cp1251 kmod-nls-cp866 kmod-nls-koi8r kmod-nls-utf8
opkg install wput joe kmod-fs-msdos kmod-fs-ntfs kmod-fs-vfat
opkg install dosfsck mkdosfs dosfslabel ntfs-3g ntfsprogs
rm -f /usr/bin/ntfscmp  /usr/bin/ntfsinfo /usr/bin/ntfscluster
rm -f /usr/bin/ntfscat /usr/bin/ntfsls /usr/bin/ntfsfix
opkg install e2fsprogs ntfsprogs_ntfs-3g resize2fs
opkg install cfdisk mc htop diffutils unrar
opkg install unzip gzip bzip2 tar getopt gawk dialog rename less ldd iconv psmisc memtester
opkg install md5deep lsof screen bash luci luci-i18n-russian
echo 'hardstatus off'>>/etc/screenrc
echo 'hardstatus alwayslastline'>>/etc/screenrc
echo "hardstatus string 'Ctr+a-? - help | %-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<'" >> /etc/screenrc
/etc/init.d/uhttpd enable
sync
reboot

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Opensuse ошибка при инициализации репозитория
  • Openservice ошибка 1060 указанная служба не установлена виндовс 10