Как восстановить диск самым безопасным способом

Описательный ответ

Включает изменения согласно комментариям @StéphaneChazelas, а также Ответ

Общая проблема заключается в том, что большинство современных клиентов Mail User Agent (MUA )не отображают обычный текст в формате Monospace. Автономные клиенты, такие как Evolution от Gnome, Microsoft Outlook и Thunderbird от Mozilla, используют различные шрифты. В то время как большинство клиентов веб-почты, таких как Gmail, ожидают и отображают HTML. К счастью, существует HTML-тег для разделения блока предварительно отформатированного текста -. Для удобства этот набор тегов

. К сожалению, Unix mailпо умолчанию отправляет электронную почту в виде простого текста. Таким образом, необходимо решить две проблемы:

  1. Внесите в отправленный файл теги
    HTML.
  2. Измените content-typeотправленного письма на text/html.

Добавление тегов HTML представляет собой простой процесс добавления тега

перед первой строкой и тега 
после последней строки отправляемого файла. Я позаимствовал метод отправки электронной почты в формате HTML из этого ответа .

Функциональный сценарий

Обратите внимание, что это очень простой, не -готовый к работе скрипт, без проверки ошибок:

#!/bin/bash
# Requires GNU recode

# Usage:
#./email_log.sh file_to_send.txt subject recipient 

# Set paths and filenames
_dir="."
_infile=$1
_subject=$2
_user=$3
_sendfile="$_dir/send.txt"

# Prepend and append 
 HTML tags
cat $_infile |recode..html |sed  "1s;^;To: $_user\nSubject: $_subject\nContent-Type: text/html\n
\n;" > $_sendfile
echo "
" >> $_sendfile # Sending html email cat $_sendfile | /usr/sbin/sendmail -t -oi # Cleanup # rm $_sendfile

Выполнить следующим образом:

./email_log.sh test_lines.txt "This is a test of sending a text file using

 html tags" user1

Полное электронное письмо с заголовками, показывающими, что содержимое -имеет тип text/htmlи добавлены теги

:

Return-path: 
Envelope-to: user1@host
Delivery-date: Fri, 05 Apr 2019 09:39:03 -0400
Received: from user1 by host with local (Exim 4.92)
        (envelope-from )
        id 1hCP3f-0000Ie-T6
        for user1@host; Fri, 05 Apr 2019 09:39:03 -0400
Subject: This is a test of sending a text file using 
 html tags
Content-Type: text/html
To: 
X-Mailer: mail (GNU Mailutils 3.5)
Message-Id: 
From: user1 
Date: Fri, 05 Apr 2019 09:39:03 -0400
X-Evolution-Source: 2e20a156d92decafcdd72e4d7b87e28dd95ed39a
MIME-Version: 1.0

1234567890 1234567890
1234
123456
Do not wrap around this line please.  Do not wrap around this line please.  Do not wrap around this line please. Do not wrap around this line please.
1234567890

 _________________________________
< Plain Text content sent as HTML >
 ---------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Отображение электронной почты в Gnome's Evolution, показывающее, что MUA теперь отображает текст в моноширине, как и предполагалось:

Preformatted Monospace Text sent as HTML email

0
21.04.2020, 21:14
2 ответа

Основываясь на предоставленной вами информации, я могу предположить, что ваш диск умирает или уже близок к смерти.

Если у вас есть важные данные, пусть DD сделает свою работу. Или всегда есть специализированные компании, которые занимаются восстановлением данных.

0
19.03.2021, 02:27
  1. сначала разберитесь с настройкой диска и файловой системой, чтобы понять, с чем вы имеете дело. Прежде всего, убедитесь, что он правильно отображается в вашем BIOS / EFI при загрузке компьютера, и используйте любую диагностику на этом уровне. Вы хотите убедиться, что контроллер диска и разъемы достаточно надежны и работают. Вы не хотите усложнять себе задачу, работая с плохим кабелем SATA или плохим разъемом, хотя, скорее всего, это не ваша проблема. Но вы упомянули внешний жесткий диск , поэтому я предполагаю, что он подключен через USB. В идеале вы не хотели бы возиться с дисками таким образом через USB, потому что это может вызвать некоторые проблемы, но это другое обсуждение; используйте здравый смысл и решите, стоит ли вынимать диск из внешнего корпуса, чтобы вручную подключить кабель SATA от него к материнской плате.

  2. После запуска Linux убедитесь, что диск отображается как блочное устройство. Затем используйте smartctl для беглой проверки диска на наличие чего-либо очевидного.Оказавшись здесь, вы можете быть достаточно уверены, что с аппаратной частью все в порядке, и ваша проблема связана с повреждением данных на диске. Вы можете столкнуться с некоторыми проблемами с smartctl через USB.

  3. Представьте себе, что вы не можете читать книгу, не прочитав сначала правильное оглавление. Вот что такое таблица разделов диска. В идеале вы хотели бы иметь резервную копию того, что вы могли бы восстановить в случае повреждения таблицы разделов (большинство людей не делают этого ). И именно здесь вы хотели бы знать, есть ли у вас таблица разделов MBR или GPT, а также количество разделов и файловых систем, которые есть на каждом.

wrong fs type, bad option, bad superblock

В этот момент вы должны запустить fsck для дальнейшей диагностики проблемы. Не каждая файловая система имеет суперблок , но поскольку вы спрашиваете здесь Unix & Linux , я предполагаю файловую систему EXT3/4. Вы можете легко найти в Интернете исправление плохого суперблока для получения более подробной информации, чем я хочу напечатать. Короче говоря, :ваше монтирование не удалось из-за плохого суперблока 0, но в файловой системе находится много избыточных копий.

Восстановление суперблоков ext4

И если бы у вас была файловая система XFS, вы могли бы начать с выполнения xfs_repair -n /dev/sda1на ней. Но с fsck обычно используется опция-b для исправления плохого суперблока.

Вот пример многих инструкций, которые вы можете найти в Интернете:http://erikimh.com/linux-recover-corrupted-partition-from-a-bad-superblock/

I wanted to make a image copy of the disk before attempting any fsck repair... dd: error reading '/dev/sda1': Input/output error

так что да, dd сделает полное побитовое копирование в качестве средства предотвращения аварий , если вы что-то испортите. Но тогда вам придется управлять одним файлом размером 300 ГБ в вашем случае, что, вероятно, создаст другие проблемы. Однако ошибка ввода/вывода от dd указывает, по моему мнению, на тип ошибки контроллера диска, а не обязательно на повреждение данных, которое может исправить fsck. Итак, вернемся к #1 выше и помним о USB.

Если вы возьмете новый [хороший] диск и выполните на нем ddеще до создания на нем таблицы разделов MBR или BPT, это должно сработать. Вот почему мы [иногда] делаем dd if=/dev/sda of=./mypartitiontable bs=512 count=1для резервного копирования таблицы разделов MBR, например, которая расположена в пределах первых 512 байтов диска, независимо от того, верны ли данные этой таблицы разделов или нет.

Таким образом, если бы мне пришлось предположить, основываясь на приведенной выше ошибке ввода/вывода dd , у вас была или есть какая-то аппаратная проблема, которая также привела к повреждению таблицы разделов. Вы можете восстановить поврежденный суперблок, используя fsck -b , но вы также можете работать с какой-либо другой проблемой аппаратного типа, на которую может указать smartctl. Вы также можете использовать hdparmдля устранения неполадок. И помните о USB-подключении к диску, по возможности избегайте этого.

0
19.03.2021, 02:27

Теги

Похожие вопросы