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

Я использую Ubuntu Linux.

3 ответа3

2

Вы можете настроить зеркало, которое будет хранить копию всех данных на втором диске.

Если ваши диски имеют одинаковый размер, используйте:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
(Assumign sda - ваш первый диск, а sdb - второй (USB) диск)

Если они не одинакового размера, вы можете сделать то же самое с разделом:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
(Обратите внимание на дополнительную букву).

Если вы загрузитесь с отсутствующим USB-накопителем, mdadm будет жаловаться на то, что зеркало находится в ухудшенном состоянии, но вы все равно можете его использовать. Когда вы подключаете диск, он может быть повторно синхронизирован.


[Редактировать] Как указано в комментарии, я действительно пропустил «резервное копирование в файл на внешнем диске»

Вы можете создать файл на внешнем диске, используя dd. Например, для файла объемом 30 ГБ используйте dd if=/dev/zero of=/mnt/my_usb_drive/my_backupfile bs=1M count=30*1024 . Затем используйте loopback для монтирования этого файла в качестве блочного устройства и запуска mdadm над вновь созданным блочным устройством.

Недостатком этого является то, что вам придется добавить некоторые правила «горячей» замены, которые определяют, когда подключен USB-накопитель, проверяют, является ли он правильным диском, и, если это правильный диск, а не другой USB-накопитель, запустите сценарий, чтобы запустить петлевое крепление и повторная синхронизация.

Все это технически возможно, но простой дамп файловой системы или rsync в каталог на USB-диске, вероятно, является гораздо лучшим решением.

1

Я на самом деле сделал это совершенно по-другому, используя DRBD (протокол A). Это позволило мне подключать и отключать USB-накопитель без необходимости повторной синхронизации всего устройства и увеличивало скорость записи на мой внутренний SSD. Мое решение - http://www.my.host.net.nz/blog/2012/09/on-demand-raid-for-laptop-with-ssd-and-usb-disk/

0

Некоторые подсказки, связанные с проблемой:

  1. Чтобы получить размер устройства в байтах, запустите blockdev --getsize64 /dev/sda
  2. Чтобы быстро создать большой файл, запустите dd if=/dev/zero of=/mnt/external_usb_drive/sda.mirror bs=1 count=0 seek=500107862016
  3. Чтобы создать дополнительное устройство loopback, запустите mknod -m640 /dev/loop_sda_mirror b 7 8 (номера MAJOR и MINOR , которые в данном примере равны 7 и 8, вы должны получить соответственно для других устройств loopdack (запустите ls -al /dev/loop* для смотреть значения по умолчанию))
  4. Чтобы прикрепить файл к устройству обратной связи, запустите losetup /dev/loop_sda_mirror /mnt/external_usb_drive/sda.mirror

Тогда посмотри другой ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .