.
— это стандарт POSIX .
source
— встроенный синоним bash для .
и не такой переносимый, как.
Также обратите внимание, что в справочном руководстве Bash .
указан в разделе 4.1 Встроенные функции оболочки Bourne , а source
указан в разделе 4.2 Встроенные команды Bash как:
A synonym for. (see Bourne Shell Builtins).
Возможно, что bash назвал ее source
, потому что так она называлась в оболочке C (, где команда, по-видимому, возникла ).
Нет, это вообще не сработает.
Вы должны отправить его в смонтированную файловую систему, поэтому не /dev/[backup disk]
, а что-то вроде /mnt/[backup disk]/
после выполненияmount /dev/[backup disk] /mnt/[backup disk]
Более того, если у вас есть несколько «настоящих» файловых систем (ext4, btrfs, zfs,... )вы их тоже пропустите. Если вы запустите mount | grep \/dev\/sd
, вы сможете в большинстве случаев увидеть все, что у вас есть.
(Исключениями являются :файловые системы, которые не смонтированы в данный момент, файловые системы, не являющиеся устройством /dev/sd X ,...)
Редактировать:Я не ответил на 2-й вопрос. Та же проблема здесь, и то же исправление будет применяться.
НО :Если целевая файловая система не использует шифрование, все будет сохранено в расшифрованном виде
На самом деле вы можете сделать это с помощью rsync
. Но зачем делать это вручную?
Для создания полной копии ОС лучшим инструментом будетTimeshift
(он предлагается Debian и его потомками, возможно, и другими ). Это создаст полную копию всего, что необходимо для восстановления из полной резервной копии -. Под капотом Timeshift
будет использовать rsync
, но он уже знает все части ОС, необходимые для полной копии.
Я думаю, вы задаете два разных вопроса.
Будет ли rsync копировать/дублировать файловую систему? Да, это будет. Его также можно использовать для преобразования между файловыми системами (. Например, вы можете скопировать файловую систему ext3 в раздел ext4 ). Файловые системы должны поддерживать функции друг друга :копирование ext4 в жир приведет к потере многих функций. Вам нужно смонтировать файловые системы; Я предполагаю, что вы знаете, как это сделать. Вы также обычно можете заставить live CD монтировать файловые системы для вас, а затем нажать Control -Alt -T, чтобы открыть командную строку.
Я не знаком с LUKS; Я ожидаю, что если вы сможете смонтировать файловую систему так, чтобы файлы можно было прочитать, она будет скопирована.
Ваш первоначальный вопрос также касался клона. Копия, которую вы сделаете с помощью rsync, почти наверняка не загрузится. Вам нужно сделать еще пару шагов.
Если разделы изменились, вам потребуется изменить /etc/fstab. Если ваша существующая система использует UUID для идентификации разделов, вам нужно будет изменить файл fstab. Вы можете изменить его обратно на старый стиль UUID, отличный от -, если хотите; это облегчает клонирование, но не рекомендуется.
Затем вам нужно будет добавить загрузочный код. Вам нужно будет использовать chroot для изменения целевой системы. Чаще всего устанавливается grub2. Лучшие примеры, которые я нашел, находятся здесь:Справка сообщества Ubuntu по grub2
А поскольку ссылки перемещаются, я безвозмездно скопирую некоторые примеры:
это способ установить grub
sudo mount /dev/sdXY /mnt # Example: sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sdX # Example: sudo grub-install --boot-directory=/mnt/boot /dev/sda
И обновить каталог изображений в grub:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
sudo update-grub
Это невозможно сделать только с помощью rsync. Сначала следует сделать резервную копию всей системы. Лично я использую для этого оболочку rsync(Butterfly Backup ). Вот пример:
$ bb backup --computer mypc --destination /backup --data System --type Unix
Затем вам следует установить новую машину и выполнить восстановление следующим образом:
$ bb restore --catalog /backup --last --computer mypc
Таким образом вы переносили необходимые файлы (passwd и т.д. )в новую систему, не трогая специальные файлы типа/dev