btrfs и снимки

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Дмитрий

btrfs и снимки

Непрочитанное сообщение Дмитрий » 14 дек 2015, 13:07

День добрый!
Хочу получить систему с возможностью отката к ранее сохраненным состояниям(как на virtualbox+снимки и т.п.).
Прошу совета специалистов по файловой системе btrfs.
Поставил на ubuntu 14.04 в качестве корневой системы btrfs(v.3.12) . Сделал снимок

Код: Выделить всё

btrfs subvolume snapshot / /mnt/first
имеем

Код: Выделить всё

btrfs subvolume list /
id 257 ... @ 
id 258 ... @home
id 262 ....mnt/first
установил произвольный пакет.
выбрал свой снимок

Код: Выделить всё

btrfs subvolume set-default 262 /
Перезапустился.
команда

Код: Выделить всё

btrfs subvolume get-default  /
показывает на нужный снимок, однако я спокойно могу использовать программы из установленного пакета т.е. используется текущая ФС, а не из снимка. Что я не так сделал?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 21 июн 2016, 14:31

Дмитрий писал(а): Хочу получить систему с возможностью отката к ранее сохраненным состояниям(как на virtualbox+снимки и т.п.).
Прошу совета специалистов по файловой системе btrfs.
Не бывает в природе специалистов по btrfs. Бывают только самоучки. Слишком оно всё новое ... и сырое, отчасти, ...
Дмитрий писал(а): Поставил на ubuntu 14.04 в качестве корневой системы btrfs(v.3.12) .
Я тоже поставил в качестве корневой системы btrfs, Fedora 23.
Месяца 2 всё это крутится, часто сутками не выключаясь ... никаких проблем. В принципе, очень доволен.

Промежду дел, начинаю собирать информацию по btrfs.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 21 июн 2016, 19:25

Olej писал(а): Не бывает в природе специалистов по btrfs. Бывают только самоучки. Слишком оно всё новое ... и сырое, отчасти, ...
BTRFS от чайника - как работать со снапшотами
1. Снимок делается командой:
btrfs subvolume snapshot X Y

где X - путь к каталогу внутри btrfs раздела, который хотите заснапшотить, а Y - место куда хотите положить снимок.

К примеру, что бы сделать снимок вашей корневой системы потребуется следующая команда:
btrfs subvolume snapshot / /root-snapshoot

В итоге, в папке /root-snapshoot появятся копии всех ваших файлов из /
Обращаю внимание, что делается снапшот только содержимого btrfs раздела, то есть, если тот же /home у вас в отдельном разделе, то его содержимое не снапшотится. При восстановлении, данные на нем тоже не затрагиваются.

2. Сделать откат системы на ранее сделанный снапшот можно командой:
btrfs subvolume set-default ID /

где ID это номер выбранного снапшота, который можно узнать командой:
btrfs subvolume list /

После, необходимо перегрузится и ваша система загрузиться уже с выбранного снимка.

3. Вернуть все обратно, т.е. выйти из примонтированного снимка в основной можно командой:
btrfs subvolume set-default 0 /

Перегружаемся и оказываемся в изначальной системе, снимки которого и делали. Один нюанс, если вам отчего то не удается переключатся между снапшотами, проверьте записи в /boot/grub/grub.cfg
Дело в том, что если вы обновите grub загрузившись из какого снимка, этот снимок пропишется в grub и в дальнейшем будет грузится всегда, вопреки set-default. Что бы избежать этого после обновления системы всегда чистите значение rootflags=subvol=[название снимка] из grub.cfg - нафиг удаляйте его целиком и тогда грузится будет set-default, установленный вами снимок.

4. Если находясь внутри снимка вы хотите посмотреть "невидимый" отсюда том более верхнего уровня, например основной, то его можно примонтировать командой вида:
sudo mount -t btrfs -o subvolid=0 "раздел где находится" "куда монтировать"

Например:
sudo mount -t btrfs -o subvolid=0 /dev/mapper/lvm-root /mnt
Я использую lvm, поэтому раздел у меня выглядит так, у вас будет по другому, можете посмотреть через GParted. Разумеется, вместо основного нулевого тома, можно выбрать любой, указав в subvolid нужный ID. Как их смотреть указано в пункте два.

Кстати, абсолютно никаких препятствий, если захотите сделать снапшот снапшота и сохранить его в основном разделе с нулевым ID, монтируйте его и вперед.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 17 апр 2019, 19:43

У меня BTRFS крутится на инсталляциях Fedora ... лет 3-4, наверное, уже.

Код: Выделить всё

[olej@xenix ~]$ df
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
devtmpfs           4050344            0  4050344            0% /dev
tmpfs              4065144       114084  3951060            3% /dev/shm
tmpfs              4065144         1280  4063864            1% /run
tmpfs              4065144            0  4065144            0% /sys/fs/cgroup
/dev/sdc2        156033024    134490556 20352276           87% /
tmpfs              4065144           76  4065068            1% /tmp
/dev/sdc1           243815       194875    32044           86% /boot
tmpfs               813028           52   812976            1% /run/user/1000

[olej@xenix ~]$ mount | grep /dev/sdc
/dev/sdc2 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=257,subvol=/root00)
/dev/sdc1 on /boot type ext4 (rw,relatime)

[olej@xenix ~]$ sudo btrfs filesystem show /dev/sdc2
Label: 'rfremix'  uuid: d0c2512d-1e50-4057-99dc-19a989152be9
	Total devices 1 FS bytes used 128.01GiB
	devid    1 size 148.80GiB used 142.80GiB path /dev/sdc2
Понадобились некоторые уточнения... Ищем внятные более-менее свежие описания.

ФАЙЛОВАЯ СИСТЕМА BTRFS
Октябрь 2, 2016
Файловые системы Linux. Btrfs.
11 июля 2017

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 10 окт 2019, 12:25

Olej писал(а):
17 апр 2019, 19:43
У меня BTRFS крутится на инсталляциях Fedora ... лет 3-4, наверное, уже.
Докрутилась! :-?
Очень неплохо ведущая себя FS, но в практической жизни отягощённая особенностями, разбираться каждый раз с которыми - себе дороже! Сношу btrfs и больше ставить не буду!
Проблемы, на которые напарывался в практике, были такие:

1. Gparted не может сдвинуть границу btrfs раздела /, а размера отдельного раздела /boot, как его создаёт Fedora 24 или 25 - недостаточно для размещения 3-х последних обновляемых ядер, обновления приходится делать через задницу, см. Fedora 24 и далее....

2. btrfs не позволило создать swap-файл на разделе, когда это понадобилось, см. swap.

3. Чашу терпения переполнило то, что не смог восстановить загрузчик GRUB (совершенно заурядное, в общем, действие), когда ремонтники ноутбука "восстановили" винду, там стоящую в качестве минимальной тестовой системы на небольшом разделе. Они мне запороли GRUB загрузчик, а / - в btrfs! Элементарный chroot не удаётся выполнить, потому что теперь требуют монтировать в /mnt не раздел, а том ... с каким-то задроченным синтаксисом.

4. Да и в FAQ от RussianFedora они пишут:
Q: Что вы скажете об установке системы на BTRFS?
A: Мы настоятельно не рекомендуем её использовать. Данная ФС очень нестабильна и часто приводит к полной потере всех данных на устройстве без возможности восстановления даже в идеальных условиях (было множество случаев у пользователей нашего канала).
Хотя именно Fedora были популяризатором BTRFS и стали активно продвигать её в мир!

P.S. В итоге, прихожу к решению:
- загружаюсь с LiveUSB ...
- сохраняю всё нужное из /home на внешний USB HDD;
- сношу разделы Fedora 27 - btrfs + /boot
- инсталлирую по-новой Fedora 30

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 10 окт 2019, 12:35

Дмитрий писал(а):
14 дек 2015, 13:07
Хочу получить систему с возможностью отката к ранее сохраненным состояниям(как на virtualbox+снимки и т.п.).
А как показала практика (и не раз!) с возможностью сохранения и восстановления состояний системы замечательно справляется Timeshift.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 15 янв 2021, 07:50

Olej писал(а):
10 окт 2019, 12:25
1. Gparted не может сдвинуть границу btrfs раздела /, а размера отдельного раздела /boot, как его создаёт Fedora 24 или 25 - недостаточно для размещения 3-х последних обновляемых ядер, обновления приходится делать через задницу, см. Fedora 24 и далее....
Из области приключений: как я воевал с btrfs :lol:
Предистория такая:
- существует компьютер с Fedora, установленной ещё с версии 27 (кажется) ... чтобы наблюдать что там в мире Fedora происходит...
- система там не инсталлировалась, а только обновлялась от версии к версии, и теперь дообновлялась до 32
- корневая система там - btrfs ... поскольку Linux не умеет (не умел?) грузиться с btrfs, то перед разделом создётся ext4 раздел /boot
- предыдущие версии Fedora (27, 28 ...) создавали его размером 250Mb...
- а нынешние версии (30-32) не влазят в /boot чтобы хранить свои там привычные 3 последних версии ядра...
- обновляться с помощью их GUI dragora становится невозможно - приходится держать в /boot только 2 последних копии ядра + обновлять всё это хозяйство каждый раз вручную...
Выглядит это как-то так:

Код: Выделить всё

root@mint:~# parted /dev/sda print all
Model: ATA INTEL SSDSA2MH16 (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  263MB  262MB  primary  ext4         boot
 2      263MB   160GB  160GB  primary  btrfs
...
Это всё на быстром SSD:

Код: Выделить всё

root@mint:/sbin# inxi -Dxxxx
Drives:    Local Storage: total: 385.58 GiB used: 161.4 MiB (0.0%)
           ID-1: /dev/sda vendor: Intel model: SSDSA2MH160G1GC size: 149.05 GiB speed: <unknown>
           serial: CVEM938500TB160PGN rev: 8820 scheme: MBR
           ID-2: /dev/sdb vendor: Western Digital model: WD2500AAKX-083CA1 size: 232.89 GiB speed: <unknown>
           rotation: 7200 rpm serial: WD-WMAYW3779894 rev: 1H19 temp: 31 C scheme: MBR
           ID-3: /dev/sdc type: USB model: USB FLASH DRIVE size: 3.64 GiB serial: 070A3C89A4AF3E29 rev: PMAP
           scheme: MBR
А поскольку всё это сильно задолбало, то есть альтернативы:
- раздвинуть всё-таки btrfs на 250Mb от начала + расширить /boot на эту величину ... и сделать это всё стандартным gparted, загрузившись с флешки с Mint 20 ISO ...
- а если из этого ничего не выйдет, то снести нафиг Fedora и btrfs, и установить там тот же Mint 20 ... который мне, кроме всего, для работы показал наилучшие по комфорту показатели из всех практически существующих дистрибутивов.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 15 янв 2021, 07:56

Olej писал(а):
15 янв 2021, 07:50
- раздвинуть всё-таки btrfs на 250Mb от начала + расширить /boot на эту величину ... и сделать это всё стандартным gparted, загрузившись с флешки с Mint 20 ISO ...
Сказано - сделано...
Запускаю gparted, передвигаю раздел (намечаю), он начинает операцию ... и орёт что у него ошибка btrfs!
Выполняю (благо в Mint 20 оказалась поддержка btrfs "ис каропки"):

Код: Выделить всё

root@mint:~# btrfs check /dev/sda2
Opening filesystem to check...
Checking filesystem on /dev/sda2
UUID: d0c2512d-1e50-4057-99dc-19a989152be9
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
root 257 inode 7987236 errors 100, file extent discount
Found file extent holes:
    start: 0, len: 4096
root 257 inode 8497193 errors 100, file extent discount
Found file extent holes:
    start: 0, len: 4096
ERROR: errors found in fs roots
found 39367127040 bytes used, error(s) found
total csum bytes: 36812360
total tree bytes: 648216576
total fs tree bytes: 555630592
total extent tree bytes: 38109184
btree space waste bytes: 118705748
file data blocks allocated: 48738435072
 referenced 38146007040
Таки да...
Запускаю исправление ... он предупреждает 5 раз, на каждом шагу, что это рисковая операция и хорошо она не кончится :-o ...

Код: Выделить всё

root@mint:~# btrfs check --repair /dev/sda2
enabling repair mode
WARNING:

    Do not use --repair unless you are advised to do so by a developer
    or an experienced user, and then only after having accepted that no
    fsck can successfully repair all types of filesystem corruption. Eg.
    some software or hardware bugs can fatally damage a volume.
    The operation will start in 10 seconds.
    Use Ctrl-C to stop it.
10 9 8 7 6 5 4 3 2 1
Starting repair.
Opening filesystem to check...
Checking filesystem on /dev/sda2
UUID: d0c2512d-1e50-4057-99dc-19a989152be9
[1/7] checking root items
Fixed 0 roots.
[2/7] checking extents
No device size related problem found
[3/7] checking free space cache
cache and super generation don't match, space cache will be invalidated
[4/7] checking fs roots
Fixed discount file extents for inode: 7987236 in root: 257
root 257 inode 7987236 errors 100, file extent discount
Found file extent holes:
    start: 0, len: 4096
Fixed discount file extents for inode: 8497193 in root: 257
root 257 inode 8497193 errors 100, file extent discount
Found file extent holes:
    start: 0, len: 4096
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 39367127040 bytes used, no error found
total csum bytes: 36812360
total tree bytes: 648216576
total fs tree bytes: 555630592
total extent tree bytes: 38109184
btree space waste bytes: 118705748
file data blocks allocated: 48738435072
 referenced 38146007040
Вот после этого можно пробовать двигать...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 15 янв 2021, 08:04

Olej писал(а):
15 янв 2021, 07:56
Вот после этого можно пробовать двигать...
1). сдвинуть начало btrfs на 250Mb вправо + на конце освободить ~4Gb под swap (любые разговоры про Linux без swap - это херня!)
Screenshot from 2021-01-15 04-14-35.png
Screenshot from 2021-01-15 04-14-35.png (29.24 КБ) 2881 просмотр
2). раздвинуть /boot с 250 до 500 Mb
Screenshot from 2021-01-15 04-15-24.png
Screenshot from 2021-01-15 04-15-24.png (26.92 КБ) 2881 просмотр
3). создать в хвосте Linux-swap раздел на оставшееся место
Screenshot from 2021-01-15 04-16-13.png
Screenshot from 2021-01-15 04-16-13.png (33.24 КБ) 2881 просмотр
И выглядеть будет всё это кино как-то так:
Screenshot from 2021-01-15 04-16-38.png
Screenshot from 2021-01-15 04-16-38.png (61.55 КБ) 2881 просмотр

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: btrfs и снимки

Непрочитанное сообщение Olej » 15 янв 2021, 08:10

Olej писал(а):
15 янв 2021, 08:04
И выглядеть будет всё это кино как-то так:
Запускаем!
И видим по оценкам времени операций, что работы там больше чем на час ... это на быстром SSD:
Screenshot from 2021-01-15 04-25-30.png
Screenshot from 2021-01-15 04-25-30.png (78.64 КБ) 2881 просмотр
И выглядит это всё, в загруженном с флешки Mint 20, как-то так:
Screenshot from 2021-01-15 04-25-53.png
Screenshot from 2021-01-15 04-25-53.png (175 КБ) 2881 просмотр

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей