Создание восстанавливаемого образа диска [закрыто]

Этот код perl даст вам подсчитанный хвост

#!/usr/bin/perl
#
# Usage tailmax.pl <filename> [<num_lines>]
#
use strict;
use warnings;

use File::Tail;

my $logfile = shift @ARGV;
my $pattern = shift @ARGV || '';
my $count = shift @ARGV || -1;

my $fh = File::Tail->new(name => $logfile, tail => 0, interval => 0, maxinterval => 2) or
    die "Cannot open $logfile: $!\n";

while ($count != 0 and defined (my $line = $fh->read)) {
    if ($pattern eq '' or $line =~ /$pattern/) {
        print "$line";
        $count-- if $count > 0;
    }
}

, если вы сохраните его в файл, например / usr / local / bin / tailmax и сделать его исполняемым, вы можете вызвать его так, что даст вам следующие 100 сообщений из файла журнала / var / log / messages , которые содержат RE somepattern . (Для чтения этого файла может потребоваться root .)

tailmax /var/log/messages 'somepattern' 100
3
21.01.2017, 15:34
3 ответа

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

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

0
27.01.2020, 21:37

Вы можете создать сжатый образ:

gzip < /dev/hdd > hdd.img.gz

Чтобы восстановить:

gunzip < hdd.img.gz > /dev/hdd

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

Если свободное пространство равно нулю, вы также можете создать разреженный образ (в файловой системе, поддерживающей разреженные файлы):

dd bs=4K conv=sparse if=/dev/hdd of=hdd.sparse.img

Чтобы восстановить: (не следует использовать разреженное при восстановлении)

dd bs=1M if=hdd.sparse.img of=/dev/hdd

Чтобы проверить, сколько места на диске это файл на самом деле использует:

du -h hdd.sparse.img

Преимущество разреженного образа в том, что он несжатый и отображается с исходным размером (при этом на самом деле не используется пространство для нулей), поэтому вы можете смонтировать его только для чтения или попытаться загрузить его на виртуальной машине . Если ваша цель - виртуальная машина, вас также может заинтересовать qemu-img .


Было бы интересно сделать это на месте. Это включало бы кеширование как можно большего количества данных в ОЗУ, затем создание файловой системы (со смещением 1 МБ) размером не больше, чем уже было кэшировано, затем заполните ее указанным выше и увеличьте файловую систему вместе с ней. После этого вы можете создать раздел, размер которого начинается с 1 МБ и независимо от размера, который он будет использовать в качестве раздела восстановления. Это сложное решение, и оно опасно, если процесс будет прерван.

Вы можете сделать это вслепую, например так:

gzip --verbose < /dev/hdd > /dev/hdd

но это предполагает, что сжатие всегда меньше, чем несжатые данные, и не будет писать заголовок gzip перед чтением данных и тому подобное. Это может сработать (пример ниже), но нет никаких гарантий.

# md5sum /dev/loop0
dd409e37f092ce049c396b99b32366fb  /dev/loop0
# xz --verbose < /dev/loop0 > /dev/loop0
  100 %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
# unxz --verbose < /dev/loop0 | md5sum
  --- %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
unxz: (stdin): Compressed data is corrupt
  --- %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
dd409e37f092ce049c396b99b32366fb  -

А потом вам еще предстоит решить, что с этим делать. В этом примере вам нужно будет переместить 1028 КБ в другое место (сдвинуть на 1 МБ, создать раздел такого размера, тогда у вас будет раздел восстановления).

Можно также подумать о том, чтобы сделать это задом наперед (чтобы изображение попало в конец диска).

0
27.01.2020, 21:37

Большинство компьютеров с предустановленной Windows OEM поставляются с инструментом для создания «дисков восстановления», USB или CD / DVD. Если ваш, это лучший вариант. Затем вы можете при желании сделать копию этого носителя для восстановления в файл на диске или сделать резервную копию любым другим обычным способом.

Если у вас нет, тогда вам придется прибегнуть к грубой силе. Поскольку у вас достаточно места на диске, чтобы сделать полную копию жесткого диска, это, вероятно, лучший вариант. Для этого вы должны:

  • Загрузиться с живого носителя Linux и убедиться, что файловая система на внутреннем жестком диске не смонтирована, а целевой диск подключен. Для целей этого краткого руководства я предполагаю, что вы размонтировали файловую систему (ы) на внутреннем диске и смонтировали файловую систему на целевом диске на / mnt .
  • Запустите ddrescue , чтобы скопировать внутренний жесткий диск, включая таблицы разделов и т. Д., В файл на целевом носителе. ddrescue предпочтительнее, чем dd , потому что он намного лучше справляется с любыми проблемами чтения, с которыми он может столкнуться.(Это в основном проблема с маргинальными носителями, но когда планируется создать образ, который будет использоваться намного позже для восстановления компьютера до заводского состояния, осторожность не повредит.) Хороший запуск может быть запущен sudo ddrescue -b 4096 -c 1024 -p / dev / sda /mnt/laptop-copy.sda в терминале. (Значения для -b и -c не критичны, но могут использоваться для повышения производительности.) См. man 1 ddrescue для их описания. параметры.
  • При желании разделите выходной файл на части, используя что-то вроде split . Например, вы можете использовать что-то вроде split -a 2 -d -n 100 /mnt/laptop-copy.sda, чтобы разделить изображение на 100 частей одинакового размера. Позже они могут быть рекомбинированы с помощью cat .
  • При желании сожмите выходной файл (ы). Обратите внимание, что в зависимости от фактического содержимого диска сжатие может быть не очень эффективным. Что-то вроде gzip -1 /mnt/laptop-copy.sda* должно быть достаточно; данные будут либо тривиально сжимаемыми, либо практически не сжимаемыми.

Чтобы восстановить заводское состояние программного обеспечения портативного компьютера, просто выполните следующие действия в обратном порядке:

  • Убедитесь, что фрагменты или файл образа доступны (очевидно).
  • Распакуйте фрагменты, если применимо, с помощью gunzip .
  • Повторно объедините фрагменты, если применимо, используя cat .
  • Запишите данные на диск, используя что-то вроде sudo ddrescue -b 4096 -c 1024 /mnt/laptop-copy.sda / dev / sda .
0
27.01.2020, 21:37

Теги

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