Использование Linux в сервисном центре — различия между версиями
LeNiN (обсуждение | вклад) (→ntfsclone: добавил опцию --rescue) |
LeNiN (обсуждение | вклад) (→ECC RAM: cat /sys/devices/system/edac/mc/mc0/ue_count Точно подходит для AMD Phenom II) |
||
(не показано 25 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | На этой странице собрана информация, которая будет полезна в сервисных центрах | + | На этой странице собрана информация, которая будет полезна в сервисных центрах — как провести диагностику компьютерного «железа» или восстановить данные. |
== Загрузка с разных устройств == | == Загрузка с разных устройств == | ||
− | Линуксы могут загружаться откуда угодно | + | Линуксы могут загружаться откуда угодно — с USB-флешек и жёстких дисков, карт памяти (SD и прочих), CD/DVD, по локальной сети (PXE). Главное, чтобы материнская плата умела загружать операционную систему с этих устройств. |
+ | |||
+ | Загрузочные клавиши для некоторых ноутбуков и материнских плат можно посмотреть на http://boot-keys.org. | ||
== 32/64 бита == | == 32/64 бита == | ||
Строка 14: | Строка 16: | ||
* Регистр букв имеет значение. Чаще всего, команды пишутся с маленькой буквы. Если написать команду с большой буквы, система сообщит вам, что команда не найдена; | * Регистр букв имеет значение. Чаще всего, команды пишутся с маленькой буквы. Если написать команду с большой буквы, система сообщит вам, что команда не найдена; | ||
* Удобно пользоваться [http://ru.wikipedia.org/wiki/Автодополнение автодополнением], чтобы не ошибаться при наборе команды. Когда наберёте первые символы, просто нажмите TAB один-два раза; | * Удобно пользоваться [http://ru.wikipedia.org/wiki/Автодополнение автодополнением], чтобы не ошибаться при наборе команды. Когда наберёте первые символы, просто нажмите TAB один-два раза; | ||
− | * Большинство команд, связанных с оборудованием, должны выполнятся от суперпользователя [http://ru.wikipedia.org/wiki/Root root]. Чтобы стать суперпользователем, необходимо набрать <code>sudo -i</code> или <code>su -</code> В этом режиме надо быть предельно осторожным | + | * Большинство команд, связанных с оборудованием, должны выполнятся от суперпользователя [http://ru.wikipedia.org/wiki/Root root]. Чтобы стать суперпользователем, необходимо набрать <code>sudo -i</code> или <code>su -</code> В этом режиме надо быть предельно осторожным — например, если перепутать /dev/sda с /dev/sdb, то операция будет произведена с другим жёстким диском. |
+ | |||
+ | == Общая информация об операционной системе == | ||
+ | |||
+ | * Эти программы/команды обычно не нужно устанавливать: | ||
+ | * Эти программы надо устанавливать: | ||
+ | ** [https://github.com/KittyKatt/screenFetch screenFetch] — выдаёт в консоли логотип системы + базовую информацию (версия ядра, ОС, количество оперативной памяти, процессор, видеокарта, …) | ||
+ | ** [https://github.com/dylanaraps/neofetch Neofetch] — аналогично, входит в состав Lubuntu; | ||
== Особенности работы с драйверами == | == Особенности работы с драйверами == | ||
− | Linux-системы заново определяют оборудование при каждом запуске системы, поэтому можно загружаться с установленной на жёсткий диск (или флешку) системой почти на любом железе | + | Linux-системы заново определяют оборудование при каждом запуске системы, поэтому можно загружаться с установленной на жёсткий диск (или флешку) системой почти на любом железе — в основном, всё само определится и сразу заработает. Трудности с автоопределением железа могут возникнуть с проприетарными драйверами, поэтому лучше их не устанавливать. |
Чтобы посмотреть, какие модули ядра используются, можно воспользоваться командой <code>lspci -k</code>: | Чтобы посмотреть, какие модули ядра используются, можно воспользоваться командой <code>lspci -k</code>: | ||
Строка 98: | Строка 107: | ||
== Как получить список аппаратных компонентов == | == Как получить список аппаратных компонентов == | ||
=== В терминале === | === В терминале === | ||
− | * lshw | + | * lshw — почти полный список оборудования, не хватает: большинство usb устройств (кроме дисков), мониторы, ИБП; |
− | * hwinfo --short | + | * hwinfo --short — ещё один список оборудования; |
− | * lspci | + | * lspci — список PCI-устройств. С параметром «-k» показывает используемые модули ядра (т.е., драйверы). Если устройство совсем свежее, запустите <code>sudo update-pciids</code> для обновления базы. |
− | * lsusb | + | * lsusb — список USB-устройств. С параметром «-v» показывает очень много дополнительной информации. |
− | * decode-dimms | + | * decode-dimms — подробная информация об оперативной памяти. Содержится в пакете i2c-tools. Можно, например, сгенерировать html страницу: |
− | * dmidecode | + | <pre> |
− | * <code>discover --type-summary --disable-bus all --enable-bus pci display</code> | + | decode-dimms -f --side-by-side --merge-cells > /tmp/decode-dimms.html |
+ | </pre> | ||
+ | * dmidecode — информация о железе из [http://ru.wikipedia.org/wiki/Desktop_Management_Interface Desktop Management Interface]; | ||
+ | * <code>discover --type-summary --disable-bus all --enable-bus pci display</code> — показать название видеокарты; | ||
+ | * <code>inxi</code> — список оборудования и информация о системе (процессы, диски, версии ПО); | ||
=== Графически === | === Графически === | ||
− | * lshw-gtk | + | * lshw-gtk — почти полный список оборудования |
− | * HardInfo | + | * HardInfo — выводит информацию об оборудовании и операционной системе. Поддерживаются шины PCI, ISA PnP, USB, IDE, SCSI, последовательные и параллельные порты. |
== Тестирование оперативной памяти == | == Тестирование оперативной памяти == | ||
− | * Memtest86+ | + | |
− | * memtester | + | * Memtest86+ — имеется во многих дистрибутивах. Запускать можно с LiveCD или с жёсткого диска из меню Grub. Нужно сделать минимум один прогон (цифра в столбце «Pass»; должна быть больше 0), лучше оставить на всю ночь. В случае ошибок оперативной памяти, появятся красные строки с описанием. Параллельно с работой Memtest86+ ничего делать не получится, т.к. он монопольно использует ресурсы. |
+ | * memtester — тестирует из запущенного Linux, т.е. можно параллельно, например, запускать Smart-тесты жёсткого диска. Проверить 1 ГБ памяти два раза: <pre>memtester 1024 2</pre> | ||
+ | |||
+ | === ECC RAM === | ||
+ | |||
+ | Память ECC бесполезно проверять обычным Memtest86+, надо смотреть ошибки, выявляемые с помощью ECC. | ||
+ | * для одних платформ (каких? Точно подходит для AMD Phenom II):<pre>cat /sys/devices/system/edac/mc/mc0/ue_count</pre> | ||
+ | * для других платформ (каких?) можно установить mcelog и следить за его логами. | ||
== Датчики (температура, напряжение) == | == Датчики (температура, напряжение) == | ||
− | * [http://wiki.linuxformat.ru/index.php/LXF92:Lm-sensors_HOWTO lm-sensors] позволяет просматривать информацию от доступных датчиков | + | * [http://wiki.linuxformat.ru/index.php/LXF92:Lm-sensors_HOWTO lm-sensors] позволяет просматривать информацию от доступных датчиков — температуру, напряжение, обороты вентиляторов. Если пакет уже был установлен в систему, возможно команда <code>sensors</code> выдаст вам полную информацию: |
<pre> | <pre> | ||
atk0110-acpi-0 | atk0110-acpi-0 | ||
Строка 138: | Строка 158: | ||
=== Программный контроль скорости вращения кулеров === | === Программный контроль скорости вращения кулеров === | ||
− | '''fancontrol''' | + | '''fancontrol''' — программная регулировка скорости вентиляторов. Утилита <code>pwmconfig</code> служит для его настройки. Если конфигурация оборудования изменилась, необходимо заново запустить <code>pwmconfig</code>, чтобы она определила, какие кулеры к каким каналам управления подключены. |
− | == Тестирование производительности видеокарты == | + | == Видеокарты == |
+ | |||
+ | * glxinfo -B — информация о видеокарте, в т.ч. количество оперативной памяти на ней (например: Video memory: 1024MB) | ||
+ | |||
+ | === Тестирование производительности видеокарты === | ||
Тесты можно использовать как для прогрева железа, чтобы оценить качество работы системы охлаждения, так и для сравнения производительности: | Тесты можно использовать как для прогрева железа, чтобы оценить качество работы системы охлаждения, так и для сравнения производительности: | ||
− | * gtkperf | + | * gtkperf — тестирования ускорения 2D-графики; |
− | * glxgears | + | * glxgears — простейший тест с шестерёнками; |
− | * glmark2 | + | * glmark2 — более разнообразный тест, занимает около 5 минут. Пример вывода для интегрированной видеокарты AMD с open source драйверами: |
<pre> | <pre> | ||
======================================================= | ======================================================= | ||
Строка 190: | Строка 214: | ||
Для мобильных видеокарт, поддерживающих только OpenGL ES, есть специальные урезанные тесты: | Для мобильных видеокарт, поддерживающих только OpenGL ES, есть специальные урезанные тесты: | ||
− | * es2gears | + | * es2gears — те же шестерёнки; |
* glmark2-es2 | * glmark2-es2 | ||
=== Энергопотребление ATI/AMD Radeon === | === Энергопотребление ATI/AMD Radeon === | ||
− | Open source драйвер | + | Open source драйвер «Radeon» поддерживает управление энергопотреблением видеокарты (см. [http://www.x.org/wiki/RadeonFeature#KMS_Power_Management_Options Возможности Open source драйвера Radeon]): |
==== До R6xx ==== | ==== До R6xx ==== | ||
Строка 227: | Строка 251: | ||
==== R6xx и новее ==== | ==== R6xx и новее ==== | ||
− | Поддерживается режим dpm, все параметры управляются аппаратно (можно включить старое поведение, передав ядру при загрузке параметр | + | Поддерживается режим dpm, все параметры управляются аппаратно (можно включить старое поведение, передав ядру при загрузке параметр «radeon.dpm=0»): |
<pre> | <pre> | ||
cat /sys/class/drm/card0/device/power_method | cat /sys/class/drm/card0/device/power_method | ||
Строка 243: | Строка 267: | ||
== Тестирование звуковой карты == | == Тестирование звуковой карты == | ||
Со звуком в линуксе обычно работает [http://ru.wikipedia.org/wiki/ALSA ALSA], в некоторых дистрибутивах поверх ALSA работает [http://ru.wikipedia.org/wiki/PulseAudio PulseAudio]. | Со звуком в линуксе обычно работает [http://ru.wikipedia.org/wiki/ALSA ALSA], в некоторых дистрибутивах поверх ALSA работает [http://ru.wikipedia.org/wiki/PulseAudio PulseAudio]. | ||
− | * <code>pactl list cards</code> | + | * <code>pactl list cards</code> — Список устройств с точки зрения PulseAudio; |
− | * <code>cat /proc/asound/cards</code> | + | * <code>cat /proc/asound/cards</code> — Список устройств с точки зрения ALSA; |
− | * <code>speaker-test -c 6 -t wav -l 1</code> | + | * <code>speaker-test -c 6 -t wav -l 1</code> — тестирование звука с помощью ALSA: в каждый канал один раз проиграть название канала; |
== Работа с разделами жёсткого диска == | == Работа с разделами жёсткого диска == | ||
Строка 251: | Строка 275: | ||
=== В терминале === | === В терминале === | ||
− | * | + | * <code>fsarchiver probe simple</code> — получить список дисковых устройств и разделов на них; |
− | + | * lsblk — получить список дисковых устройств, разделов на них и куда они подключены (примонтированы), в том числе RAID и LVM; | |
− | + | * [https://ru.wikipedia.org/wiki/fdisk fdisk] — утилита для работы с таблицей разделов. Не работает с GUID (GPT); | |
− | * gdisk | + | * dd — простая и мощная команда, позволяющая копировать, например, раздел диска в файл или по сети, или забить весь жёсткий диск нулями(«низкоуровневое форматирование»)/случайными значениями. Много примеров в [https://ru.wikipedia.org/wiki/dd статье википедии]. В случае, если диск плохо читается, надо использовать dd_rescue; |
− | * cfdisk | + | * gdisk — аналог fdisk для GPT. Умеет конвертировать MBR в GPT; |
− | * sfdisk | + | * cfdisk — редактор разделов с интерфейсом, сделанном на [https://ru.wikipedia.org/wiki/Curses curses]. Не работает с GUID (GPT); |
− | * parted | + | * sfdisk — манипулятор партициями, отлично подходит для использования в скриптах. Не умеет работать с GPT. Пример: скопировать таблицу разделов с жёсткого диска <code>/dev/sda</code> на <code>/dev/sdb</code>:<pre>sfdisk -d /dev/sda | sfdisk /dev/sdb</pre> |
+ | * parted — тоже манипулятор партициями. Умеет работать как с GPT, так и с MBR. Пример: вывести информацию о разделах жёсткого диска: | ||
<pre> | <pre> | ||
sudo parted /dev/sda print | sudo parted /dev/sda print | ||
Строка 273: | Строка 298: | ||
=== Графически === | === Графически === | ||
− | * [http://ru.wikipedia.org/wiki/GParted GParted] | + | * [http://ru.wikipedia.org/wiki/GParted GParted] — Графический редактор разделов. Работает не только с таблицей разделов, но и с самими разделами — может изменять их размер, перемещать, копировать на другой диск. |
== Тестирование жёсткого диска == | == Тестирование жёсткого диска == | ||
− | * <code>hdparm -I /dev/sda</code> | + | * <code>hdparm -I /dev/sda</code> — получить информацию о настройках жёсткого диска; |
− | Тестирование на [https://ru.wikipedia.org/wiki/%D0%91%D1%8D%D0%B4-%D1%81%D0%B5%D0%BA%D1%82%D0%BE%D1%80 битые секторы] ( | + | Тестирование на [https://ru.wikipedia.org/wiki/%D0%91%D1%8D%D0%B4-%D1%81%D0%B5%D0%BA%D1%82%D0%BE%D1%80 битые секторы] («бэд-блоки», «бэд-секторы», повреждённые секторы): |
=== Программное === | === Программное === | ||
− | * '''badblocks''' | + | * '''badblocks''' — в простейшем случае, запускаем <pre>badblocks -v -s /dev/sda</pre> и программа начнёт проверку в режиме только чтения. С опцией -w, программа перейдёт в разрушающий режим сканирования, записывая данные и сверяя их. Пользователям файловых систем ext2/ext3/ext4 рекомендуется использовать команду <code>e2fsck -c</code>, которая автоматически запустит badblocks в режиме только чтения, и если будут найдены сбойные блоки, они будут добавлены в специальный список, или <code>e2fsck -cc</code>, non-destructive read-write test (см. man e2fsck). |
− | * '''dd''' | + | * '''dd''' — читаем с диска в /dev/null, в случае проблемы с поверхностью получим ошибку чтения, если же проблем нет, то по окончании получим ошибку, что на диске закончилось место: <pre>dd if=/dev/sdX of=/dev/null bs=1M</pre> |
− | * [http://whdd.org WHDD] | + | * [http://whdd.org WHDD] — аналог MHDD [http://www.opennet.ru/opennews/art.shtml?num=37297]. В репозиториях Debian/Ubuntu пока отсутствует, есть на диске [http://sysresccd.org SystemRescueCd]. |
=== S.M.A.R.T. === | === S.M.A.R.T. === | ||
− | [ | + | [https://ru.wikipedia.org/wiki/S.M.A.R.T. S.M.A.R.T.] позволяет посмотреть: были ли ранее проблемы с жёстким диском, количество сбойных секторов, статистику (время работы, количество включений, …). Также с помощью S.M.A.R.T. можно провести самотестирование жёсткого диска: |
==== В терминале ==== | ==== В терминале ==== | ||
− | + | smartctl — позволяет просматривать и изменять параметры SMART, запускать самотестирование. | |
− | + | ||
− | + | Если ещё не обновляли его базу данных, можно это сделать: | |
− | + | <pre> | |
+ | update-smart-drivedb | ||
+ | </pre> | ||
+ | |||
+ | Примеры команд: | ||
+ | * <code>smartctl -s on /dev/sda</code> — включить SMART у жёсткого диска <code>/dev/sda</code> (обычно уже включен); | ||
+ | * <code>smartctl -t long /dev/sda</code> — запустить полное самотестирование поверхности. Утилита выведет примерное время, через которое завершится тестирование, после чего нужно посмотреть информацию о диске: | ||
+ | * <code>smartctl -x /dev/sda</code> — посмотреть всю информацию о диске <code>/dev/sda</code>. На жёсткие диски с интерфейсом USB может заругаться «Unknown USB bridge … please specify device type with the -d option», обычно помогает указать <code>-d sat</code>. Пример вывода: | ||
<pre>smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-26-generic] (local build) | <pre>smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-26-generic] (local build) | ||
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net | Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net | ||
Строка 397: | Строка 429: | ||
If Selective self-test is pending on power-up, resume after 0 minute delay. | If Selective self-test is pending on power-up, resume after 0 minute delay. | ||
</pre> | </pre> | ||
− | + | Здесь, к примеру: | |
− | + | * <code>Extended self-test routine recommended polling time 255 minutes</code> — примерное время полного самотестирования. Так как максимальное значение ячейки 255, эта цифра показывает, что время будет больше 255 минут. | |
− | + | * <code>Reallocated_Sector_Ct 0</code> — сбойных секторов не обнаружено; | |
− | + | * <code>Start_Stop_Count 170</code> — включался 170 раз; | |
− | + | * <code>Power_On_Hours 18183</code> — проработал 18183 часов; | |
− | + | * <code>Spin_Retry_Count 0</code> — повторных попыток раскрутить шпиндель не было; | |
− | + | * <code>Airflow_Temperature_Cel 37 (Min/Max 28/39)</code> — температура жёсткого диска 37 °C; | |
− | + | * <code>Extended offline Completed without error 10636</code> — Когда жёсткий диск проработал 10636 часов, кто-то запустил полное самотестирование поверхности, которое закончилось без ошибок. | |
===== SSD ===== | ===== SSD ===== | ||
Строка 419: | Строка 451: | ||
</pre> | </pre> | ||
− | Также в обычном выводе <code>smartctl - | + | Также в обычном выводе <code>smartctl -x /dev/sda</code> (см. пример выше) надо обратить внимание на параметр «Wear Leveling Count». |
==== Графически ==== | ==== Графически ==== | ||
В разных дистрибутивах Linux есть различные графические утилиты для работы со SMART жёстких дисков: | В разных дистрибутивах Linux есть различные графические утилиты для работы со SMART жёстких дисков: | ||
− | * gsmartcontrol | + | * gsmartcontrol: запускать от суперпользователя (либо сама запросит). Пример вывода для SSD, поработавшей 1 год: |
− | * palimpsest ( | + | [[Файл:Gsmartcontrol KINGSTON SUV400S37240G bad.png]] |
+ | * palimpsest («Дисковая утилита», пакет gnome-disk-utility) — в Gnome. Пример: | ||
[[Файл:Gnome palimpsest smart example.png]] | [[Файл:Gnome palimpsest smart example.png]] | ||
Строка 434: | Строка 467: | ||
<pre> | <pre> | ||
− | sfdisk -d > backup_sfdisk. | + | sfdisk -d > backup_sfdisk.txt |
dd bs=1M count=1 if=/dev/sda of=backup_boot_sda.img | dd bs=1M count=1 if=/dev/sda of=backup_boot_sda.img | ||
</pre> | </pre> | ||
+ | |||
+ | В случае GPT: | ||
+ | |||
+ | Сохранить информацию о разделах диска /dev/sda в файл backup_sgdisk.txt в текущей директории: | ||
+ | <pre> | ||
+ | sgdisk --backup=backup_sgdisk.txt /dev/sda | ||
+ | </pre> | ||
+ | |||
+ | Восстановить таблицу разделов диска /dev/sdX из файла backup_sgdisk.txt в текущей директории: | ||
+ | <pre> | ||
+ | sgdisk --load-backup=backup_sgdisk.txt /dev/sdX | ||
+ | </pre> | ||
+ | Эта команда может выдать ошибку «Non-GPT disk; not saving changes. Use -g to override.», просто затрите первый сектор диска /dev/sdX нулями и повторите. | ||
=== dd === | === dd === | ||
Если резервная копия была сделана с помощью команды dd, то восстанавливаем так: | Если резервная копия была сделана с помощью команды dd, то восстанавливаем так: | ||
<pre> | <pre> | ||
− | dd if= | + | dd if=backup_sda1.img of=/dev/sdaX bs=1M |
</pre> | </pre> | ||
Если резервная копия была сделана с помощью команд dd и gzip, то восстанавливаем так: | Если резервная копия была сделана с помощью команд dd и gzip, то восстанавливаем так: | ||
<pre> | <pre> | ||
− | zcat | + | zcat backup_sda1.img.gz | dd of=/dev/sdaX bs=1M |
</pre> | </pre> | ||
Строка 455: | Строка 501: | ||
</pre> | </pre> | ||
− | Можно ещё на лету сжимать в gzip: | + | Можно ещё на лету сжимать в gzip (или pigz, чтобы использовать несколько ядер CPU): |
<pre> | <pre> | ||
− | ntfsclone --rescue --save-image -o - /dev/sda1 | gzip - | + | ntfsclone --rescue --save-image -o - /dev/sda1 | gzip -9c > backup_ntfsclone_sda1.img.gz |
</pre> | </pre> | ||
Строка 469: | Строка 515: | ||
zcat backup_ntfsclone_sda1.img.gz | ntfsclone --restore-image --overwrite /dev/sdaX - | zcat backup_ntfsclone_sda1.img.gz | ntfsclone --restore-image --overwrite /dev/sdaX - | ||
</pre> | </pre> | ||
+ | |||
+ | === fsarchiver === | ||
+ | Архивирует на уровне файловой системы. | ||
=== [http://clonezilla.org Clonezilla] === | === [http://clonezilla.org Clonezilla] === | ||
Строка 474: | Строка 523: | ||
== Восстановление данных == | == Восстановление данных == | ||
− | * gpart | + | * gpart — Поиск и восстановление потерянных разделов; |
− | * photorec | + | * photorec — ищет мультимедиа-файлы на жёстком диске по их содержимому, игнорируя файловую систему. На диске ничего не меняет, может работать с образом диска. Работает в интерактивном режиме. В последних версиях объединили в пакет с [[#testdisk|testdisk]]. Пример использования: <pre>photorec /d /tmp/ /dev/sdb</pre> |
− | * dd_rescue | + | * [http://myrescue.sourceforge.net myrescue] — ? |
+ | * [http://www.sleuthkit.org/autopsy/desc.php Autopsy] — ? | ||
+ | * scalpel — для восстановления файлов, ищет по сигнатурам (видимо, результат будет аналогичен photorec). Перед запуском, надо поправить файл /etc/scalpel/scalpel.conf, раскомментировав строки с интересующими файлами. | ||
+ | |||
+ | === ddrescue === | ||
+ | * dd_rescue — копирует данные из одного файла или блочного устройства на другое. Например, с одного жёсткого диска на другой, или в образ. Также есть gddrescue. | ||
+ | |||
+ | Пример работы ddrescue из deb-пакета gddrescue: | ||
<pre> | <pre> | ||
# ddrescue --block-size=1M /dev/sda /media/BIG/320_ddrescue.img /media/BIG/320_ddrescue.img.log | # ddrescue --block-size=1M /dev/sda /media/BIG/320_ddrescue.img /media/BIG/320_ddrescue.img.log | ||
+ | GNU ddrescue 1.17 | ||
Press Ctrl-C to interrupt | Press Ctrl-C to interrupt | ||
− | + | rescued: 80025 MB, errsize: 613 kB, current rate: 5361 kB/s | |
− | rescued: | + | ipos: 80026 MB, errors: 1, average rate: 11351 kB/s |
− | + | opos: 80026 MB, time since last successful read: 0 s | |
− | + | Finished | |
− | ipos: | + | |
− | opos: | + | |
− | Finished | + | |
</pre> | </pre> | ||
− | |||
− | |||
=== testdisk === | === testdisk === | ||
− | '''testdisk''' | + | '''testdisk''' — находит и восстанавливает информацию об удалённых разделах (хранится в MBR). Может работать, к примеру, с образом жёсткого диска, сделанным командой dd. Вот список восстанавливаемых типов разделов из man testdisk: |
* BeFS (BeOS) | * BeFS (BeOS) | ||
* BSD disklabel (FreeBSD/OpenBSD/NetBSD) | * BSD disklabel (FreeBSD/OpenBSD/NetBSD) | ||
Строка 539: | Строка 591: | ||
=== minicom === | === minicom === | ||
− | В первый раз запускаем <code>minicom -s</code> от суперпользователя root. Настраиваем (имя порта <code>/dev/ttyUSB0</code>, скорость 38400). Выбираем | + | В первый раз запускаем <code>minicom -s</code> от суперпользователя root. Настраиваем (имя порта <code>/dev/ttyUSB0</code>, скорость 38400). Выбираем «Сохранить настройки как dfl» (как default). После настройки, можно запускать minicom об обычного пользователя, лишь бы он был в группе dialout (на неё даются права на чтение/запись в устройство <code>/dev/ttyUSB0</code>). |
=== cutecom === | === cutecom === | ||
Строка 545: | Строка 597: | ||
=== ttysnoop === | === ttysnoop === | ||
− | Позволяет | + | Позволяет «подсматривать» за последовательными соединениями. |
== Прошивка BIOS == | == Прошивка BIOS == | ||
− | Большинство BIOS можно прошить с помощью всего одной утилиты | + | Большинство BIOS можно прошить с помощью всего одной утилиты — [https://flashrom.org flashrom]. Устанавливается из репозитория. Запускать от суперпользователя. [https://www.flashrom.org/Supported_hardware Список гарантированно поддерживаемых устройств]. |
− | * <code>flashrom -r backup.bios</code> | + | * <code>flashrom -r backup.bios</code> — сохранить прежнюю версию BIOS в файл <code>backup.bios</code> |
− | * <code>flashrom -w M3A78-CM-ASUS-2801.ROM</code> | + | * <code>flashrom -w M3A78-CM-ASUS-2801.ROM</code> — записать BIOS из заранее скачанного с официального сайта и распакованного файла <code>M3A78-CM-ASUS-2801.ROM</code> |
=== Загрузка прошивки в жёсткий диск === | === Загрузка прошивки в жёсткий диск === | ||
Строка 559: | Строка 611: | ||
== Полезные LiveCD == | == Полезные LiveCD == | ||
− | * [http://sysresccd.org SystemRescueCd] | + | * [http://sysresccd.org SystemRescueCd] — на основе Gentoo, позволяет выбрать разрядность процессора, разместить операционную систему в оперативной памяти, загрузить консоль, а из неё — графический интерфейс; |
− | * http://stresslinux.org | + | * http://stresslinux.org — дистрибутив для стресс-тестирования железа; |
− | * [http://www.inquisitor.ru/download.html Inquisitor] | + | * [http://www.inquisitor.ru/download.html Inquisitor] — на основе Debian; |
* [http://trinityhome.org Trinity Rescue Kit]. | * [http://trinityhome.org Trinity Rescue Kit]. | ||
== См. также == | == См. также == | ||
− | * [[HardwareDetect]] | + | * [[HardwareDetect]] — Полезные команды для определения типа установленного оборудования; |
* [[HardwareCompatibilityLists|Списки совместимости оборудования с Linux]]; | * [[HardwareCompatibilityLists|Списки совместимости оборудования с Linux]]; | ||
[[Категория:Hardware]] | [[Категория:Hardware]] | ||
[[Категория:Linux]] | [[Категория:Linux]] |
Текущая версия на 09:22, 16 июля 2021
На этой странице собрана информация, которая будет полезна в сервисных центрах — как провести диагностику компьютерного «железа» или восстановить данные.
Содержание
- 1 Загрузка с разных устройств
- 2 32/64 бита
- 3 Работа в терминале
- 4 Общая информация об операционной системе
- 5 Особенности работы с драйверами
- 6 Как получить список аппаратных компонентов
- 7 Тестирование оперативной памяти
- 8 Датчики (температура, напряжение)
- 9 Видеокарты
- 10 Тестирование звуковой карты
- 11 Работа с разделами жёсткого диска
- 12 Тестирование жёсткого диска
- 13 Резервное копирование и восстановление разделов
- 14 Восстановление данных
- 15 Диагностика сетевых карт
- 16 Работа с COM-портом
- 17 Прошивка BIOS
- 18 Полезные LiveCD
- 19 См. также
Загрузка с разных устройств
Линуксы могут загружаться откуда угодно — с USB-флешек и жёстких дисков, карт памяти (SD и прочих), CD/DVD, по локальной сети (PXE). Главное, чтобы материнская плата умела загружать операционную систему с этих устройств.
Загрузочные клавиши для некоторых ноутбуков и материнских плат можно посмотреть на http://boot-keys.org.
32/64 бита
Большинство линуксов можно скачать как 32-битными, так и 64-битными.
- 32-битные запустятся почти на любом процессоре (ARM и прочую экзотику пока не рассматриваем). Оперативной памяти больше 4 ГБ увидит со специальным PAE-ядром (обычно входит в комплект многих дистрибутивов).
- 64-битные ОС запустятся только на 64-разрядных процессорах.
Работа в терминале
Если вы раньше не работали в консоли Linux, запомните несколько правил:
- Прочтите статьи для начинающих, например http://help.ubuntu.ru/manual/терминал;
- Регистр букв имеет значение. Чаще всего, команды пишутся с маленькой буквы. Если написать команду с большой буквы, система сообщит вам, что команда не найдена;
- Удобно пользоваться автодополнением, чтобы не ошибаться при наборе команды. Когда наберёте первые символы, просто нажмите TAB один-два раза;
- Большинство команд, связанных с оборудованием, должны выполнятся от суперпользователя root. Чтобы стать суперпользователем, необходимо набрать
sudo -i
илиsu -
В этом режиме надо быть предельно осторожным — например, если перепутать /dev/sda с /dev/sdb, то операция будет произведена с другим жёстким диском.
Общая информация об операционной системе
- Эти программы/команды обычно не нужно устанавливать:
- Эти программы надо устанавливать:
- screenFetch — выдаёт в консоли логотип системы + базовую информацию (версия ядра, ОС, количество оперативной памяти, процессор, видеокарта, …)
- Neofetch — аналогично, входит в состав Lubuntu;
Особенности работы с драйверами
Linux-системы заново определяют оборудование при каждом запуске системы, поэтому можно загружаться с установленной на жёсткий диск (или флешку) системой почти на любом железе — в основном, всё само определится и сразу заработает. Трудности с автоопределением железа могут возникнуть с проприетарными драйверами, поэтому лучше их не устанавливать.
Чтобы посмотреть, какие модули ядра используются, можно воспользоваться командой lspci -k
:
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge 00:01.0 PCI bridge: ASUSTeK Computer Inc. RS880 PCI to PCI bridge (int gfx) Kernel modules: shpchp 00:06.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2) Kernel driver in use: pcieport Kernel modules: shpchp 00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ahci 00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ohci_hcd 00:12.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ohci_hcd 00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ehci_hcd 00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ohci_hcd 00:13.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ohci_hcd 00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ehci_hcd 00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 3a) Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: piix4_smbus Kernel modules: sp5100_tco, i2c-piix4 00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: pata_atiixp Kernel modules: pata_atiixp 00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard 00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge 00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: ohci_hcd 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller Kernel modules: amd64_edac_mod 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control Kernel driver in use: k10temp Kernel modules: k10temp 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control 01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RS780C [Radeon HD 3100] Subsystem: ASUSTeK Computer Inc. Device 82ee Kernel driver in use: radeon Kernel modules: radeon 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02) Subsystem: ASUSTeK Computer Inc. M3A78-EH Motherboard Kernel driver in use: r8169 Kernel modules: r8169 03:07.0 Multimedia audio controller: Creative Labs SB0400 Audigy2 Value Subsystem: Creative Labs Device 1001 Kernel driver in use: snd_emu10k1 Kernel modules: snd-emu10k1
Также можно посмотреть список модулей для PCI-устройств с помощью команды pcimodules:
r8169 pata_via i2c-i801 iTCO_wdt shpchp snd-hda-intel mei i915
Как получить список аппаратных компонентов
В терминале
- lshw — почти полный список оборудования, не хватает: большинство usb устройств (кроме дисков), мониторы, ИБП;
- hwinfo --short — ещё один список оборудования;
- lspci — список PCI-устройств. С параметром «-k» показывает используемые модули ядра (т.е., драйверы). Если устройство совсем свежее, запустите
sudo update-pciids
для обновления базы. - lsusb — список USB-устройств. С параметром «-v» показывает очень много дополнительной информации.
- decode-dimms — подробная информация об оперативной памяти. Содержится в пакете i2c-tools. Можно, например, сгенерировать html страницу:
decode-dimms -f --side-by-side --merge-cells > /tmp/decode-dimms.html
- dmidecode — информация о железе из Desktop Management Interface;
-
discover --type-summary --disable-bus all --enable-bus pci display
— показать название видеокарты; -
inxi
— список оборудования и информация о системе (процессы, диски, версии ПО);
Графически
- lshw-gtk — почти полный список оборудования
- HardInfo — выводит информацию об оборудовании и операционной системе. Поддерживаются шины PCI, ISA PnP, USB, IDE, SCSI, последовательные и параллельные порты.
Тестирование оперативной памяти
- Memtest86+ — имеется во многих дистрибутивах. Запускать можно с LiveCD или с жёсткого диска из меню Grub. Нужно сделать минимум один прогон (цифра в столбце «Pass»; должна быть больше 0), лучше оставить на всю ночь. В случае ошибок оперативной памяти, появятся красные строки с описанием. Параллельно с работой Memtest86+ ничего делать не получится, т.к. он монопольно использует ресурсы.
- memtester — тестирует из запущенного Linux, т.е. можно параллельно, например, запускать Smart-тесты жёсткого диска. Проверить 1 ГБ памяти два раза:
memtester 1024 2
ECC RAM
Память ECC бесполезно проверять обычным Memtest86+, надо смотреть ошибки, выявляемые с помощью ECC.
- для одних платформ (каких? Точно подходит для AMD Phenom II):
cat /sys/devices/system/edac/mc/mc0/ue_count
- для других платформ (каких?) можно установить mcelog и следить за его логами.
Датчики (температура, напряжение)
- lm-sensors позволяет просматривать информацию от доступных датчиков — температуру, напряжение, обороты вентиляторов. Если пакет уже был установлен в систему, возможно команда
sensors
выдаст вам полную информацию:
atk0110-acpi-0 Adapter: ACPI interface Vcore Voltage: +1.10 V (min = +0.85 V, max = +1.60 V) +3.3 Voltage: +3.26 V (min = +2.97 V, max = +3.63 V) +5 Voltage: +4.92 V (min = +4.50 V, max = +5.50 V) +12 Voltage: +12.10 V (min = +10.20 V, max = +13.80 V) CPU FAN Speed: 1486 RPM (min = 600 RPM) CHASSIS FAN Speed: 1115 RPM (min = 600 RPM) POWER FAN Speed: 0 RPM (min = 600 RPM) CPU Temperature: +39.0°C (high = +60.0°C, crit = +95.0°C) MB Temperature: +42.0°C (high = +45.0°C, crit = +95.0°C) k10temp-pci-00c3 Adapter: PCI adapter temp1: +29.0°C (high = +70.0°C) (crit = +83.5°C, hyst = +81.5°C)
Если нет, то установите пакет lm-sensors
и запустите sensors-detect
от суперпользователя root.
Программный контроль скорости вращения кулеров
fancontrol — программная регулировка скорости вентиляторов. Утилита pwmconfig
служит для его настройки. Если конфигурация оборудования изменилась, необходимо заново запустить pwmconfig
, чтобы она определила, какие кулеры к каким каналам управления подключены.
Видеокарты
- glxinfo -B — информация о видеокарте, в т.ч. количество оперативной памяти на ней (например: Video memory: 1024MB)
Тестирование производительности видеокарты
Тесты можно использовать как для прогрева железа, чтобы оценить качество работы системы охлаждения, так и для сравнения производительности:
- gtkperf — тестирования ускорения 2D-графики;
- glxgears — простейший тест с шестерёнками;
- glmark2 — более разнообразный тест, занимает около 5 минут. Пример вывода для интегрированной видеокарты AMD с open source драйверами:
======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR: X.Org GL_RENDERER: Gallium 0.4 on AMD RS780 GL_VERSION: 3.0 Mesa 9.1.1 ======================================================= [build] use-vbo=false: FPS: 359 FrameTime: 2.786 ms [build] use-vbo=true: FPS: 395 FrameTime: 2.532 ms [texture] texture-filter=nearest: FPS: 387 FrameTime: 2.584 ms [texture] texture-filter=linear: FPS: 381 FrameTime: 2.625 ms [texture] texture-filter=mipmap: FPS: 390 FrameTime: 2.564 ms [shading] shading=gouraud: FPS: 311 FrameTime: 3.215 ms [shading] shading=blinn-phong-inf: FPS: 290 FrameTime: 3.448 ms [shading] shading=phong: FPS: 216 FrameTime: 4.630 ms [bump] bump-render=high-poly: FPS: 192 FrameTime: 5.208 ms [bump] bump-render=normals: FPS: 374 FrameTime: 2.674 ms [bump] bump-render=height: FPS: 270 FrameTime: 3.704 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 117 FrameTime: 8.547 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 26 FrameTime: 38.462 ms [pulsar] light=false:quads=5:texture=false: FPS: 318 FrameTime: 3.145 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 52 FrameTime: 19.231 ms [desktop] effect=shadow:windows=4: FPS: 179 FrameTime: 5.587 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 103 FrameTime: 9.709 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 141 FrameTime: 7.092 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 112 FrameTime: 8.929 ms [ideas] speed=duration: FPS: 198 FrameTime: 5.051 ms [jellyfish] <default>: FPS: 114 FrameTime: 8.772 ms [terrain] <default>: FPS: 8 FrameTime: 125.000 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 319 FrameTime: 3.135 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 111 FrameTime: 9.009 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 319 FrameTime: 3.135 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 236 FrameTime: 4.237 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 127 FrameTime: 7.874 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 235 FrameTime: 4.255 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 234 FrameTime: 4.274 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 94 FrameTime: 10.638 ms ======================================================= glmark2 Score: 220 =======================================================
Для мобильных видеокарт, поддерживающих только OpenGL ES, есть специальные урезанные тесты:
- es2gears — те же шестерёнки;
- glmark2-es2
Энергопотребление ATI/AMD Radeon
Open source драйвер «Radeon» поддерживает управление энергопотреблением видеокарты (см. Возможности Open source драйвера Radeon):
До R6xx
Включить динамическое управление энергопотреблением:
echo dynpm > /sys/class/drm/card0/device/power_method
Включить режим энергопотребления по заранее подготовленным профилям ("default", "auto", "low", "mid", "high"):
echo profile > /sys/class/drm/card0/device/power_method echo low > /sys/class/drm/card0/device/power_profile
Посмотреть частоты:
cat /sys/kernel/debug/dri/0/radeon_pm_info default engine clock: 600000 kHz current engine clock: 299530 kHz default memory clock: 500000 kHz current memory clock: 499500 kHz voltage: 1150 mV PCIE lanes: 16
Посмотреть температуру можно стандартной командой sensors:
radeon-pci-0100 Adapter: PCI adapter temp1: +58.0°C
R6xx и новее
Поддерживается режим dpm, все параметры управляются аппаратно (можно включить старое поведение, передав ядру при загрузке параметр «radeon.dpm=0»):
cat /sys/class/drm/card0/device/power_method dpm
Принудительно включаем режим пониженного потребления:
echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
Ускорение проигрывания видео
Информацию можно получить с помощью команд vdpauinfo или vainfo.
Тестирование звуковой карты
Со звуком в линуксе обычно работает ALSA, в некоторых дистрибутивах поверх ALSA работает PulseAudio.
-
pactl list cards
— Список устройств с точки зрения PulseAudio; -
cat /proc/asound/cards
— Список устройств с точки зрения ALSA; -
speaker-test -c 6 -t wav -l 1
— тестирование звука с помощью ALSA: в каждый канал один раз проиграть название канала;
Работа с разделами жёсткого диска
Любые изменения таблицы разделов жёсткого диска выполняются от суперпользователя root.
В терминале
-
fsarchiver probe simple
— получить список дисковых устройств и разделов на них; - lsblk — получить список дисковых устройств, разделов на них и куда они подключены (примонтированы), в том числе RAID и LVM;
- fdisk — утилита для работы с таблицей разделов. Не работает с GUID (GPT);
- dd — простая и мощная команда, позволяющая копировать, например, раздел диска в файл или по сети, или забить весь жёсткий диск нулями(«низкоуровневое форматирование»)/случайными значениями. Много примеров в статье википедии. В случае, если диск плохо читается, надо использовать dd_rescue;
- gdisk — аналог fdisk для GPT. Умеет конвертировать MBR в GPT;
- cfdisk — редактор разделов с интерфейсом, сделанном на curses. Не работает с GUID (GPT);
- sfdisk — манипулятор партициями, отлично подходит для использования в скриптах. Не умеет работать с GPT. Пример: скопировать таблицу разделов с жёсткого диска
/dev/sda
на/dev/sdb
:sfdisk -d /dev/sda | sfdisk /dev/sdb
- parted — тоже манипулятор партициями. Умеет работать как с GPT, так и с MBR. Пример: вывести информацию о разделах жёсткого диска:
sudo parted /dev/sda print Модель: ATA ST31500541AS (scsi) Диск /dev/sda: 1500GB Размер сектора (логич./физич.): 512B/512B Таблица разделов: gpt Номер Начало Конец Размер Файловая система Имя Флаги 1 1049kB 21,5GB 21,5GB ext4 2 21,5GB 23,7GB 2202MB linux-swap(v1) 3 23,7GB 1479GB 1456GB ext4 4 1479GB 1500GB 21,0GB ext4
Графически
- GParted — Графический редактор разделов. Работает не только с таблицей разделов, но и с самими разделами — может изменять их размер, перемещать, копировать на другой диск.
Тестирование жёсткого диска
-
hdparm -I /dev/sda
— получить информацию о настройках жёсткого диска;
Тестирование на битые секторы («бэд-блоки», «бэд-секторы», повреждённые секторы):
Программное
- badblocks — в простейшем случае, запускаем
badblocks -v -s /dev/sda
и программа начнёт проверку в режиме только чтения. С опцией -w, программа перейдёт в разрушающий режим сканирования, записывая данные и сверяя их. Пользователям файловых систем ext2/ext3/ext4 рекомендуется использовать командуe2fsck -c
, которая автоматически запустит badblocks в режиме только чтения, и если будут найдены сбойные блоки, они будут добавлены в специальный список, илиe2fsck -cc
, non-destructive read-write test (см. man e2fsck). - dd — читаем с диска в /dev/null, в случае проблемы с поверхностью получим ошибку чтения, если же проблем нет, то по окончании получим ошибку, что на диске закончилось место:
dd if=/dev/sdX of=/dev/null bs=1M
- WHDD — аналог MHDD [1]. В репозиториях Debian/Ubuntu пока отсутствует, есть на диске SystemRescueCd.
S.M.A.R.T.
S.M.A.R.T. позволяет посмотреть: были ли ранее проблемы с жёстким диском, количество сбойных секторов, статистику (время работы, количество включений, …). Также с помощью S.M.A.R.T. можно провести самотестирование жёсткого диска:
В терминале
smartctl — позволяет просматривать и изменять параметры SMART, запускать самотестирование.
Если ещё не обновляли его базу данных, можно это сделать:
update-smart-drivedb
Примеры команд:
-
smartctl -s on /dev/sda
— включить SMART у жёсткого диска/dev/sda
(обычно уже включен); -
smartctl -t long /dev/sda
— запустить полное самотестирование поверхности. Утилита выведет примерное время, через которое завершится тестирование, после чего нужно посмотреть информацию о диске: -
smartctl -x /dev/sda
— посмотреть всю информацию о диске/dev/sda
. На жёсткие диски с интерфейсом USB может заругаться «Unknown USB bridge … please specify device type with the -d option», обычно помогает указать-d sat
. Пример вывода:
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-26-generic] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION === Model Family: Seagate Barracuda LP Device Model: ST31500541AS Serial Number: 9XW01A24 LU WWN Device Id: 5 000c50 019af1954 Firmware Version: CC34 User Capacity: 1 500 301 910 016 bytes [1,50 TB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: 8 ATA Standard is: ATA-8-ACS revision 4 Local Time is: Thu Jul 26 23:01:20 2012 YEKT SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 633) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 255) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. SCT capabilities: (0x103f) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 119 099 006 Pre-fail Always - 208965758 3 Spin_Up_Time 0x0003 100 100 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 170 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 080 060 030 Pre-fail Always - 106608780 9 Power_On_Hours 0x0032 080 080 000 Old_age Always - 18183 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 170 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 098 000 Old_age Always - 324 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 063 052 045 Old_age Always - 37 (Min/Max 28/39) 194 Temperature_Celsius 0x0022 037 048 000 Old_age Always - 37 (0 17 0 0) 195 Hardware_ECC_Recovered 0x001a 040 024 000 Old_age Always - 208965758 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 1 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 175466593929409 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 2255824820 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 3056934445 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed without error 00% 10636 - # 2 Conveyance offline Completed without error 00% 7 - # 3 Extended offline Completed without error 00% 4 - # 4 Short offline Completed without error 00% 0 - SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
Здесь, к примеру:
-
Extended self-test routine recommended polling time 255 minutes
— примерное время полного самотестирования. Так как максимальное значение ячейки 255, эта цифра показывает, что время будет больше 255 минут. -
Reallocated_Sector_Ct 0
— сбойных секторов не обнаружено; -
Start_Stop_Count 170
— включался 170 раз; -
Power_On_Hours 18183
— проработал 18183 часов; -
Spin_Retry_Count 0
— повторных попыток раскрутить шпиндель не было; -
Airflow_Temperature_Cel 37 (Min/Max 28/39)
— температура жёсткого диска 37 °C; -
Extended offline Completed without error 10636
— Когда жёсткий диск проработал 10636 часов, кто-то запустил полное самотестирование поверхности, которое закончилось без ошибок.
SSD
У современных моделей SSD можно посмотреть статистику с помощью команды smartctl -l ssd /dev/sda
, вот пример вывода свежекупленного Crucial M4:
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-26-generic] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net Device Statistics (GP Log 0x04) Page Offset Size Value Description 7 ===== = = == Solid State Device Statistics (rev 1) == 7 0x008 1 4~ Percentage Used Endurance Indicator |_ ~ normalized value
Также в обычном выводе smartctl -x /dev/sda
(см. пример выше) надо обратить внимание на параметр «Wear Leveling Count».
Графически
В разных дистрибутивах Linux есть различные графические утилиты для работы со SMART жёстких дисков:
- gsmartcontrol: запускать от суперпользователя (либо сама запросит). Пример вывода для SSD, поработавшей 1 год:
- palimpsest («Дисковая утилита», пакет gnome-disk-utility) — в Gnome. Пример:
Резервное копирование и восстановление разделов
Целый жёсткий диск, как и отдельный раздел, можно скопировать командой dd. Если же нужно получить образ минимального размера, пригодится команда partimage.
В любом случае, лучше для начала сохранить информацию о разделах и загрузочную область:
sfdisk -d > backup_sfdisk.txt dd bs=1M count=1 if=/dev/sda of=backup_boot_sda.img
В случае GPT:
Сохранить информацию о разделах диска /dev/sda в файл backup_sgdisk.txt в текущей директории:
sgdisk --backup=backup_sgdisk.txt /dev/sda
Восстановить таблицу разделов диска /dev/sdX из файла backup_sgdisk.txt в текущей директории:
sgdisk --load-backup=backup_sgdisk.txt /dev/sdX
Эта команда может выдать ошибку «Non-GPT disk; not saving changes. Use -g to override.», просто затрите первый сектор диска /dev/sdX нулями и повторите.
dd
Если резервная копия была сделана с помощью команды dd, то восстанавливаем так:
dd if=backup_sda1.img of=/dev/sdaX bs=1M
Если резервная копия была сделана с помощью команд dd и gzip, то восстанавливаем так:
zcat backup_sda1.img.gz | dd of=/dev/sdaX bs=1M
ntfsclone
Для создания резервной копии раздела с файловой системой NTFS можно использовать ntfsclone из пакета ntfs-3g:
ntfsclone --rescue --save-image --output backup_ntfsclone_sda1.img /dev/sda1
Можно ещё на лету сжимать в gzip (или pigz, чтобы использовать несколько ядер CPU):
ntfsclone --rescue --save-image -o - /dev/sda1 | gzip -9c > backup_ntfsclone_sda1.img.gz
Восстанавливаем так:
ntfsclone --restore-image --overwrite /dev/sdaX backup_ntfsclone_sda1.img
Если же образ от ntfsclone сжат с помощью gzip, то восстанавливаем так:
zcat backup_ntfsclone_sda1.img.gz | ntfsclone --restore-image --overwrite /dev/sdaX -
fsarchiver
Архивирует на уровне файловой системы.
Clonezilla
Специализированный дистрибутив (на основе Debian/Ubuntu, в зависимости от версий), с помощью которого можно сохранить образ жёсткого диска (на другой жёсткий диск или в сеть на smb/nfs/ssh) и развернуть его, например, на другом компьютере (или нескольких). Процесс проходит в форме вопросов-ответов.
Восстановление данных
- gpart — Поиск и восстановление потерянных разделов;
- photorec — ищет мультимедиа-файлы на жёстком диске по их содержимому, игнорируя файловую систему. На диске ничего не меняет, может работать с образом диска. Работает в интерактивном режиме. В последних версиях объединили в пакет с testdisk. Пример использования:
photorec /d /tmp/ /dev/sdb
- myrescue — ?
- Autopsy — ?
- scalpel — для восстановления файлов, ищет по сигнатурам (видимо, результат будет аналогичен photorec). Перед запуском, надо поправить файл /etc/scalpel/scalpel.conf, раскомментировав строки с интересующими файлами.
ddrescue
- dd_rescue — копирует данные из одного файла или блочного устройства на другое. Например, с одного жёсткого диска на другой, или в образ. Также есть gddrescue.
Пример работы ddrescue из deb-пакета gddrescue:
# ddrescue --block-size=1M /dev/sda /media/BIG/320_ddrescue.img /media/BIG/320_ddrescue.img.log GNU ddrescue 1.17 Press Ctrl-C to interrupt rescued: 80025 MB, errsize: 613 kB, current rate: 5361 kB/s ipos: 80026 MB, errors: 1, average rate: 11351 kB/s opos: 80026 MB, time since last successful read: 0 s Finished
testdisk
testdisk — находит и восстанавливает информацию об удалённых разделах (хранится в MBR). Может работать, к примеру, с образом жёсткого диска, сделанным командой dd. Вот список восстанавливаемых типов разделов из man testdisk:
- BeFS (BeOS)
- BSD disklabel (FreeBSD/OpenBSD/NetBSD)
- CramFS, Compressed File System
- DOS/Windows FAT12, FAT16 and FAT32
- HFS and HFS+, Hierarchical File System
- JFS, IBM's Journaled File System
- Linux ext2/ext3/ext4
- Linux Raid:
- RAID 1: mirroring
- RAID 4: striped array with parity device
- RAID 5: striped array with distributed parity information
- RAID 6: striped array with distributed dual redundancy information
- Linux Swap (versions 1 and 2)
- LVM and LVM2, Linux Logical Volume Manager
- Mac partition map
- Novell Storage Services NSS
- NTFS (Windows NT/2K/XP/2003/Vista/...)
- ReiserFS 3.5, 3.6 and 4
- Sun Solaris i386 disklabel
- Unix File System UFS and UFS2 (Sun/BSD/...)
- XFS, SGI's Journaled File System
Также testdisk может восстанавливать удалённые файлы с:
- DOS/Windows FAT12, FAT16 и FAT32;
- Linux ext2;
- NTFS (Windows NT/2K/XP/2003/Vista/...);
Диагностика сетевых карт
Для внутренней диагностики некоторых сетевых карт есть пакет nictools-pci, в нём отдельные команды, например eepro100-diag, rtl8139-diag, via-diag…
Работа с COM-портом
Для восстановления жёстких дисков Seagate нужно подключаться к терминальному порту, выведенному около SATA-разъёма. Для этого используют один из многочисленных переходников USB → RS232 TTL, которые обычно определяются системой как /dev/ttyUSB0
. Для работы с ним, можно использовать команду minicom
.
Обычно аппаратный COM1 имеет адрес /dev/ttyS0. Определить можно с помощью команды:
dmesg | grep tty
вывод будет примерно такой:
[ 1.532172] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 1.557480] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
minicom
В первый раз запускаем minicom -s
от суперпользователя root. Настраиваем (имя порта /dev/ttyUSB0
, скорость 38400). Выбираем «Сохранить настройки как dfl» (как default). После настройки, можно запускать minicom об обычного пользователя, лишь бы он был в группе dialout (на неё даются права на чтение/запись в устройство /dev/ttyUSB0
).
cutecom
Графический последовательный терминал, как minicom.
ttysnoop
Позволяет «подсматривать» за последовательными соединениями.
Прошивка BIOS
Большинство BIOS можно прошить с помощью всего одной утилиты — flashrom. Устанавливается из репозитория. Запускать от суперпользователя. Список гарантированно поддерживаемых устройств.
-
flashrom -r backup.bios
— сохранить прежнюю версию BIOS в файлbackup.bios
-
flashrom -w M3A78-CM-ASUS-2801.ROM
— записать BIOS из заранее скачанного с официального сайта и распакованного файлаM3A78-CM-ASUS-2801.ROM
Загрузка прошивки в жёсткий диск
Можно рискнуть загрузить свежую прошивку в жёсткий диск с помощью команды hdparm [2]:
hdparm --fwdownload файл_с_прошивкой.LOD /dev/sdc
Полезные LiveCD
- SystemRescueCd — на основе Gentoo, позволяет выбрать разрядность процессора, разместить операционную систему в оперативной памяти, загрузить консоль, а из неё — графический интерфейс;
- http://stresslinux.org — дистрибутив для стресс-тестирования железа;
- Inquisitor — на основе Debian;
- Trinity Rescue Kit.
См. также
- HardwareDetect — Полезные команды для определения типа установленного оборудования;
- Списки совместимости оборудования с Linux;