Есть задача: имеется настроенная система на BTRFS (без /home), которую надо скопировать на другой - идентичный первому - компьютер. Перекидывать данные по сети можно (сеть гигабитная), физически переставлять диски из одной машины в другую - нет.
Не будет ли любезен кто-нибудь ткнуть меня носом в описание решения именно этой задачи? По итогам чтения всяческих текстов про BTRFS создалось впечатление, что то ли это никому конкретно не надо, то ли я чего-то не понимаю, но набор действий кажется каким-то неестественно сложным...
Копирование BTRFS на другой компьютер
Модераторы: SLEDopit, Модераторы разделов
-
- Сообщения: 613
- ОС: Arch Linux x64 на BTRFS
Re: Копирование BTRFS на другой компьютер
Что тут сложного сделать снапшот только для чтения, а потом его по сети передать по ssh ?
Для примера:
btrfs send /mnt/arch/@_BACKUP | ssh -p 22 test@192.168.100.51 "btrfs receive /mnt/backups"
Для примера:
btrfs send /mnt/arch/@_BACKUP | ssh -p 22 test@192.168.100.51 "btrfs receive /mnt/backups"
-
- Сообщения: 904
- ОС: debian, fedora (i3-wm)
Re: Копирование BTRFS на другой компьютер
Фантом
Бтрфс наверное единственная система которая может монтироваться не с корня. Возможно вы не видите субтома потому что установлен set-default на определенный субтом? Тогда подмонтируйте свой собственный корень раздела btrfs в /mnt директорию:
Где /dev/sd? ваш раздел. Все, теперь можете посмотреть все субтома, сделать снэпшот и скопировать его куда хотите:
Однако замечу этим моим заметкам уже много времени, возможно они успели устареть.
Бтрфс наверное единственная система которая может монтироваться не с корня. Возможно вы не видите субтома потому что установлен set-default на определенный субтом? Тогда подмонтируйте свой собственный корень раздела btrfs в /mnt директорию:
Код: Выделить всё
mount -t btrfs -o subvolid=5 /dev/sd? /mnt
Код: Выделить всё
btrfs subvolume list /mnt
-
- Сообщения: 2913
- ОС: Gentoo
Re: Копирование BTRFS на другой компьютер
Есть универсальный способ копирования rsync -av, ФС в данном случае не сильно то и влияет.
А так не все используют subvolume в btrfs, так как для grub - os-prober, не работает с subvolume и конфиг
нужно править в ручную. По этому и не везде можно делать снимки.
А так не все используют subvolume в btrfs, так как для grub - os-prober, не работает с subvolume и конфиг
нужно править в ручную. По этому и не везде можно делать снимки.
-
- Сообщения: 613
- ОС: Arch Linux x64 на BTRFS
-
- Сообщения: 2913
- ОС: Gentoo
Re: Копирование BTRFS на другой компьютер
Хм, а у меня не работает. Какая то засада в скрипте. Не пойму прикола, почему в скрипте не работает а вручную работает:
В скрипте команда:
Выводит:
А вручную команда:
выводит:
Пути к образам отличаются, похоже дело в каких то переменных, так как одна и та же команда не должна показывать разный вывод.
В скрипте команда:
Код: Выделить всё
LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
Spoiler
Код: Выделить всё
/dev/sda6:/dev/sda6:Debian^GNU/Linux:/boot/vmlinuz-5.10.0-17-amd64:/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-17-amd64:/boot/vmlinuz-5.10.0-17-amd64:/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-17-amd64^(recovery^mode):/boot/vmlinuz-5.10.0-17-amd64:/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^single^rootflags=subvol=@rootfs /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-16-amd64:/boot/vmlinuz-5.10.0-16-amd64:/boot/initrd.img-5.10.0-16-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-16-amd64^(recovery^mode):/boot/vmlinuz-5.10.0-16-amd64:/boot/initrd.img-5.10.0-16-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^single^rootflags=subvol=@rootfs
Shell
# linux-boot-prober btrfs UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7 subvol=@rootfs 2> /dev/null | tr ' ' '^' | paste -s -d ' '
Spoiler
Код: Выделить всё
/dev/sda6:/dev/sda6:Debian^GNU/Linux:/@rootfs/boot/vmlinuz-5.10.0-17-amd64:/@rootfs/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-17-amd64:/@rootfs/boot/vmlinuz-5.10.0-17-amd64:/@rootfs/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-17-amd64^(recovery^mode):/@rootfs/boot/vmlinuz-5.10.0-17-amd64:/@rootfs/boot/initrd.img-5.10.0-17-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^single^rootflags=subvol=@rootfs /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-16-amd64:/@rootfs/boot/vmlinuz-5.10.0-16-amd64:/@rootfs/boot/initrd.img-5.10.0-16-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^rootflags=subvol=@rootfs^quiet /dev/sda6:/dev/sda6:Debian^GNU/Linux,^with^Linux^5.10.0-16-amd64^(recovery^mode):/@rootfs/boot/vmlinuz-5.10.0-16-amd64:/@rootfs/boot/initrd.img-5.10.0-16-amd64:root=UUID=244c5bdf-e5e4-4e21-ad79-2869726911a7^ro^single^rootflags=subvol=@rootfs
-
- Сообщения: 613
- ОС: Arch Linux x64 на BTRFS
-
- Сообщения: 2618
- ОС: gentoo fluxbox
Re: Копирование BTRFS на другой компьютер
Чтo-то я не пойму. Почему бы не cp || rsync || scp etc? btrfs там или ещё что. Это вы пытаетесь сделать внутренними способами btrfs-специфичными? А зачем?
Кто пользуется btrfs - тот в БТР-е (в танке, кто не понял))
Кто пользуется btrfs - тот в БТР-е (в танке, кто не понял))
-
- Сообщения: 457
- ОС: openSUSE
Re: Копирование BTRFS на другой компьютер
Скажем так - это результат создавшегося впечатления, что с BTRFS это делается как-то проще, чем обычно. Варианты с rsync и т.п. понятны, я обычно подобные вещи так и делал, но захотелось попробовать новое.
А за советы всем спасибо, возможно, действительно нужно дополнительное монтирование. На днях попробую реализовать.
А за советы всем спасибо, возможно, действительно нужно дополнительное монтирование. На днях попробую реализовать.
-
- Сообщения: 953
- ОС: [K]Ubuntu, Debian
-
- Сообщения: 2913
- ОС: Gentoo
Re: Копирование BTRFS на другой компьютер
Само решение нашёл давно, но на всякий случай для памяти, или может кому пригодится. Просто добавил после строчек:
Код: Выделить всё
linux)
if [ "x$BTRFS" = "xbtrfs" ]; then
Код: Выделить всё
linux)
if [ "x$BTRFS" = "xbtrfs" ]; then
unset GRUB_FS