Создать архив всего диска с помощью tar

Это происходит из-за того, что *.csvпередается дословно в lsоболочкой, что является поведением POSIX по умолчанию. Если вы хотите избежать этого, вы должны использовать nullglob, чтобы глобы, которые ничего не возвращают, ничего не возвращали вместо того, чтобы возвращать дословно введенную строку. Однако у этого есть проблема, потому что lsведет себя иначе, когда файлы не предоставлены.

Вместо этого попробуйте это, что позволяет избежать ошибок в случае встроенных символов новой строки в именах файлов:

shopt -s nullglob
filenames=( *.csv )  # put all files in an array
files="${#filenames[@]}"  # get number of files
1
25.12.2019, 11:02
3 ответа

tarследует использовать для резервного копирования файлов. Для резервного копирования точного состояния диска вы должны использовать dd.

Итак, если вам нужна точная копия диска, используйте :dd if=/dev/nvme0n1 of=/mnt/some_other_drive/copy_of_the_first_drive.

Еще лучше было бы использовать сжатие (если это диск нового компьютера, то его можно сильно сжать )с помощьюdd if=/dev/nvme0n1 | bzip2 > /mnt/some_other_drive/copy_of_the_first_drive.bz2

Возможны и многие другие варианты:

  • Вы можете использовать ncили sshдля создания туннеля и переноса резервной копии в другую систему во время ее создания (, если в вашей системе нет второго диска ).
  • Вы можете использовать tar, если вам нужны только файлы, а не все состояние
  • Вы можете использовать rsync, если вам нужны только файлы и нет второго доступного диска.
4
27.01.2020, 23:40

Прежде всего, вы должны смонтировать его в каталог, например /mnt. после этого вы можете использовать команду (tar czvf somebackup.tar.gz /mnt ). в любом случае я предлагаю вам работать с rsync. если вы хотите перенести все состояние на другой жесткий диск, вы должны использовать команду dd, иначе вам не нужно этого делать.

0
27.01.2020, 23:40

tarпредназначен для работы на файловом уровне

Вы можете использовать tarдля создания архива каталогов и файлов,и архив может быть или не быть сжатым.

Таким образом, вы можете сделать резервную копию содержимого корневого раздела / и других разделов (s ), которые могут быть в вашей системе.

Примеры (запускаются при работе другой системы, например. загружается с USB-накопителя)

sudo mkdir /mnt/sd1
sudo mkdir /mnt/sd2
sudo mkdir /mnt/sd3

sudo mount /dev/nvme0n1p1 /mnt/sd1
sudo mount /dev/nvme0n1p2 /mnt/sd2
sudo mount /dev/nvme0n1p3 /mnt/sd3

sudo tar -cvzf root.tar.gz /mnt/sd1
sudo tar -cvzf home.tar.gz /mnt/sd2  # optional
sudo tar -cvzf data.tar.gz /mnt/sd3  # optional

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

Но таблица разделов (и загрузчик BIOS (, необходимые для загрузки в режиме BIOS )), будут , а не резервными копиями.

Clonezilla работает на всем диске

Вы можете использоватьClonezilla , инструмент для клонирования или создания [сжатого] образа содержимого всего диска с разделами и загрузчиками, всего.

  • Загрузите iso-файл Clonezilla,
  • создать загрузочный USB-накопитель,
  • загрузиться с него и
  • пусть Clonezilla сделает это за вас.

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

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

0
27.01.2020, 23:40

Теги

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