Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
no avatar

Автор темы
sasha300
Сообщения: 155
Зарегистрирован: 31 мар 2023, 08:56
Решено: 6
Благодарил (а): 107 раз
Поблагодарили: 7 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#1

16 май 2024, 20:17

:hi2:
Сегодня утром экспериментировал со Snapper, делал сравнение образов и прочие ништяки, которые может выполнять данная программулина. Точно помню, что выполнил команду:

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

sudo snapper --ambit classic rollback
потестил еще какое-то время и уехал на работу.
Сейчас, c помощью Timeshift, решил восстановить снапшот, который был до установки Snapper. Захожу и охулицезрею:
Снимок экрана_2024-05-16_19-57-19.png
перезарузил комп и снова нет снимков, Timeshift субтома не видит .
Зато SnapperGUI выдает:
Снимок экрана_2024-05-16_20-00-19.png
У меня появилось кучу вопросов, но основые это:
- со снапшотами Timeshift можно попрощаться или все-таки их можно восстановить?
- т.е. как говорил ув. Slant, Timeshift фиговенько реализует работу с btrfs, и на эти грабли я попал?

Заранее :hshake: и респект за подсказки!

Решение slant » 20 май 2024, 19:14
sasha300,
Timeshift при работе со снапшотами переименовывает @ и снапшот, насколько я помню.

Snapper работает по другому. Он просто выставляет default маркер на нужный subvolume(сабраздел/снапшот).

По умолчанию оный маркер стоит на сабтоме с ID 5. Смысл маркера - он указывает ядру и системе какой сабраздел монтировать во время выполнения mount для btrfs если не было опции "subvol="
Т.е. ставя маркер - указываем где именно у нас будет корневой раздел. Это сильно облегчает вопросы запуска системы из загрузчика - поменяв маркер default более не нужно править никаких конфигов или обновлять загрузчик чтобы загрузился уже новый снапшот кореня системы. Проблема же в том, что timeshift, если я правильно помню, подразумевает сохранение default маркера на subvolume с именем/путем @ или ID 5. Хотя это не то, что просто не нужно для нормальной работы системы на btrfs, а как-бы вообще противоречит ее (btrfs) принципам. :)
По сути, при полностью "академической" установке системы на btrfs, опция subvol=@ вообще не нужна нигде, для указания сабтома где находится корень системы. Ни в загрузчике ни fstab. Корнем будет default сабтом. (Вот про @home отдельно - там опция ставится.)

При rollback - snapper тоже меняет default маркер, и откатывает его на предыдущий сабтом. Который получается не @ и не с ID 5. Смотрите текущее состояние через sudo btrfs sub get-default / Там же и установить можно вручную через set-default

ID - это абсолютные номера сущностей на btrfs, они никогда не меняются. Самый первый сабтом btrfs при ее создании получает ID 5, и метку default. Это изначальный корень btrfs (не имеющий символьного имени!).
В дальнейшем он может быть спокойно удален как любой другой. А в процессе установки Ubuntu/Mint создают на этом сабтоме с ID 5 два других сабтома - @ для корня системы, и @home для хомяков.
Имена же, в отличии от ID - могут быть изменены, как имя каталога. А кроме того они еще и могут быть вложенными - т.е. сабтом может быть вида @/.snaps - здесь внутри сабтома @ находится сабтом .snaps
И при переименовании @ во что-то еще такой путь тоже поменяется! Только ID неизменны, а маркеру default на имена тоже пофиг - он тоже на ID завязан. Отсюда и косяки timeshift который с именами работает а не с ID. С учетом того, что он еще и хранит снапшоты на другом сабтоме (текущем @) с доступом по имени и жонглирует ими во время смены снапшота - понимаете теперь откуда весь этот бардак?

В случае нормальной конфигурации под snapper структура диска должна выглядеть примерно так:

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

(ID 5)/
     /@
     /@home
     /snapshots
Где в snapshots оные и живут. Здесь на всякий случай напоминаю - символ @ - это не технический признак сабтома, а лишь общеиспользуемое соглашение (как у программистов про имена переменных). Однако вышеописанная структура именно такова: @ - изначальный корень системы, а дальше он может быть переключен на любой снапшот через set-default (что snapper и делает). После чего в сохранении /@ смысла уже не так много, но оно удобно для ручного манипулирования через "sudo btrfs sub ..." если до такого когда-то доходит.
На практике - Ubuntu\Mint слишком завязаны на имя @ как корень системы, потому snapper его обычно тоже поддерживает связанным с нужным снапшотом. Вообще - там возможности конфигурации довольно гибкие, и все это можно в конфигах задать.

Перейти к ответу ➙

Аватара пользователя

slant
Сообщения: 4844
Зарегистрирован: 21 июн 2017, 18:09
Решено: 110
Благодарил (а): 53 раза
Поблагодарили: 2168 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#2

17 май 2024, 01:24

sasha300 писал(а):
16 май 2024, 20:17
- т.е. как говорил ув. Slant, Timeshift фиговенько реализует работу с btrfs, и на эти грабли я попал?
Угу. Нормально файловую систему оно не сканирует о фактическом положении дел, и полагается только на собственные записки.

А на счет снапшотов - 95% вероятности, что они физически никуда не делись, просто теперь не там, где timeshift их хочет видеть. Подходы к их размещению у timeshift и snapper разные. Timeshift с какой-то дури хранит их в подкаталоге на текущем @ (системном подразделе). Snapper же - в отдельном собственном каталоге/подразделе на корневом подразделе FS (там еще @ и @home рядом) - и большую часть времени они вне смонтированного дерева каталогов системы. Этим достигается во первых защита от случайного вмешательства из системы (не смонтированное место нельзя тупо случайно удалить или еще чего), а во вторых путь к санпшотам не меняется при замене системного подтома на другой снапшот. А именно это, судя по всему, со снапшотами Timeshift и вышло - они в другом подтоме теперь, неактивном.
Для подробностей надо посмотреть напрямую btrfs:
sudo btrfs sub li /
И вообще - крайне рекомендую почитать документацию btrfs про ее субтома/снапшоты. Т.к. по большому счету, все что работает с ними - это лишь обертка над родными командами btrfs subvolume ...
Будучи с ними знакомым - не будешь бояться потерять снапшоты и сумеешь сделать откат/преключение вообще без дополнительных программ. Благо синтаксис там несложный, а операции не деструктивные, за исключением явной команды удаления субтома.

no avatar

Автор темы
sasha300
Сообщения: 155
Зарегистрирован: 31 мар 2023, 08:56
Решено: 6
Благодарил (а): 107 раз
Поблагодарили: 7 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#3

17 май 2024, 07:40

slant писал(а):
17 май 2024, 01:24
sudo btrfs sub li /

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

sas@NB264:~$ sudo btrfs sub li /
ID 258 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-03-31_16-27-42/@
ID 259 gen 13819 top level 5 path timeshift-btrfs/snapshots/2024-03-31_16-27-42/@home
ID 260 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-03-31_20-40-55/@
ID 261 gen 177 top level 5 path timeshift-btrfs/snapshots/2024-03-31_20-40-55/@home
ID 262 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-02-18/@
ID 263 gen 250 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-02-18/@home
ID 264 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-31-04/@
ID 265 gen 319 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-31-04/@home
ID 266 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-26-49/@
ID 267 gen 901 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-26-49/@home
ID 268 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-32-02/@
ID 269 gen 911 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-32-02/@home
ID 270 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-42-13/@
ID 271 gen 6566 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-42-13/@home
ID 302 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_00-45-56/@
ID 303 gen 7681 top level 5 path timeshift-btrfs/snapshots/2024-04-21_00-45-56/@home
ID 304 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_13-00-53/@
ID 305 gen 7764 top level 5 path timeshift-btrfs/snapshots/2024-04-21_13-00-53/@home
ID 306 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_17-47-26/@
ID 307 gen 8730 top level 5 path timeshift-btrfs/snapshots/2024-04-21_17-47-26/@home
ID 308 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-22_23-59-27/@
ID 309 gen 7709 top level 5 path timeshift-btrfs/snapshots/2024-04-22_23-59-27/@home
ID 322 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-31-28/@
ID 323 gen 7802 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-31-28/@home
ID 326 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-56-11/@
ID 327 gen 9592 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-56-11/@home
ID 357 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_00-21-17/@
ID 358 gen 9554 top level 5 path timeshift-btrfs/snapshots/2024-04-29_00-21-17/@home
ID 361 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_02-06-02/@
ID 362 gen 9521 top level 5 path timeshift-btrfs/snapshots/2024-04-29_02-06-02/@home
ID 369 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_11-10-13/@
ID 370 gen 9601 top level 5 path timeshift-btrfs/snapshots/2024-04-29_11-10-13/@home
ID 371 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_19-36-37/@
ID 372 gen 11400 top level 5 path timeshift-btrfs/snapshots/2024-04-29_19-36-37/@home
ID 377 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-05_12-39-40/@
ID 378 gen 13313 top level 5 path timeshift-btrfs/snapshots/2024-05-05_12-39-40/@home
ID 381 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-09_20-37-07/@
ID 382 gen 13953 top level 5 path timeshift-btrfs/snapshots/2024-05-09_20-37-07/@home
ID 385 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-09_21-12-31/@
ID 386 gen 13909 top level 5 path timeshift-btrfs/snapshots/2024-05-09_21-12-31/@home
ID 393 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-12_20-29-56/@
ID 394 gen 16857 top level 5 path timeshift-btrfs/snapshots/2024-05-12_20-29-56/@home
ID 397 gen 17694 top level 5 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@home
ID 398 gen 17695 top level 5 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@
ID 399 gen 17785 top level 5 path timeshift-btrfs/snapshots/2024-05-14_18-58-06/@
ID 400 gen 17784 top level 5 path timeshift-btrfs/snapshots/2024-05-14_18-58-06/@home
ID 401 gen 17650 top level 397 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@home/.snapshots
ID 402 gen 17685 top level 398 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots
ID 403 gen 17672 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/1/snapshot
ID 404 gen 17675 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/2/snapshot
ID 405 gen 17677 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/3/snapshot
ID 406 gen 17680 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/4/snapshot
ID 407 gen 17788 top level 5 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home
ID 408 gen 17788 top level 5 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@
ID 409 gen 17755 top level 408 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots
ID 410 gen 17740 top level 407 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home/.snapshots
ID 411 gen 17727 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/1/snapshot
ID 412 gen 17737 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/2/snapshot
ID 413 gen 17738 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/3/snapshot
ID 414 gen 17740 top level 410 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home/.snapshots/1/snapshot
ID 415 gen 17741 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/4/snapshot
ID 416 gen 17749 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/5/snapshot
ID 417 gen 18203 top level 5 path @home
ID 418 gen 18206 top level 5 path @
ID 419 gen 18200 top level 418 path .snapshots
ID 420 gen 18185 top level 417 path @home/.snapshots
ID 421 gen 17826 top level 419 path .snapshots/1/snapshot
ID 422 gen 17869 top level 420 path @home/.snapshots/1/snapshot
ID 423 gen 17870 top level 419 path .snapshots/2/snapshot
ID 424 gen 17907 top level 419 path .snapshots/3/snapshot
ID 425 gen 17908 top level 419 path .snapshots/4/snapshot
ID 426 gen 17913 top level 419 path .snapshots/5/snapshot
ID 427 gen 17924 top level 419 path .snapshots/6/snapshot
ID 428 gen 17925 top level 419 path .snapshots/7/snapshot
ID 429 gen 17926 top level 419 path .snapshots/8/snapshot
ID 430 gen 17929 top level 419 path .snapshots/9/snapshot
ID 431 gen 17951 top level 419 path .snapshots/10/snapshot
ID 432 gen 17952 top level 419 path .snapshots/11/snapshot
ID 433 gen 17965 top level 419 path .snapshots/12/snapshot
ID 434 gen 18103 top level 419 path .snapshots/13/snapshot
ID 435 gen 17976 top level 419 path .snapshots/14/snapshot
ID 436 gen 17981 top level 420 path @home/.snapshots/2/snapshot
ID 437 gen 17982 top level 419 path .snapshots/15/snapshot
ID 438 gen 18032 top level 420 path @home/.snapshots/3/snapshot
ID 439 gen 18033 top level 419 path .snapshots/16/snapshot
ID 440 gen 18043 top level 419 path .snapshots/17/snapshot
ID 441 gen 18108 top level 420 path @home/.snapshots/4/snapshot
ID 442 gen 18108 top level 419 path .snapshots/18/snapshot
ID 443 gen 18185 top level 420 path @home/.snapshots/5/snapshot
ID 444 gen 18185 top level 419 path .snapshots/19/snapshot
ID 445 gen 18199 top level 419 path .snapshots/20/snapshot
sas@NB264:~$ 
Как видно из вывода команды, снапшоты Timeshift сохранились, что несомненно радует =) Другой вопрос, что надо сделать, чтобы Timeshift их увидел?
slant писал(а):
17 май 2024, 01:24
все что работает с ними - это лишь обертка над родными командами btrfs subvolume
я примерно так и представлял, даже и подумать не мог, что будет конфликт приложений.. Так бы сначала ставил эксперименты на другом ноуте, предназначенный для тестирования различных осей на Linux.

no avatar

Автор темы
sasha300
Сообщения: 155
Зарегистрирован: 31 мар 2023, 08:56
Решено: 6
Благодарил (а): 107 раз
Поблагодарили: 7 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#4

18 май 2024, 00:53

Походу не нужны мне снимки Timeshift, так как у Snapper покруче реализован механизм работы с субтомами.
Но я не понимаю, если Timeshift после восстановления снапшота писал, что требуется перезагрузка, то Snapper этого не просит. Причем экспериментировал с субтомом / (ну или с @, но в Snapper субтом не отображается как @, во всяком случае в конфигах).
Получить конфиги с помощью команды:

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

sudo snapper list-configs
Ушел малеха от сути, пишу:

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

sudo snapper -v undochange 1..2
восстанавливается снапшот, из корня удаляется тестовая директория (была создана для теста, после созданного снапшота 1) и все, работаю дальше, никаких "требуется перезагрузка" и прочих телодвижений.
Или всё-таки стоит перезагружаться после восстановления снапшота?

Аватара пользователя

slant
Сообщения: 4844
Зарегистрирован: 21 июн 2017, 18:09
Решено: 110
Благодарил (а): 53 раза
Поблагодарили: 2168 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#5

18 май 2024, 15:17

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

Тут, для понимания вопроса, нужно знать как linux работает с открытыми файлами. В отличии от винды, здесь практически нет полностью блокируемых операций. В частности: что произойдет если файл открыт на запись/реактирование (скажем в текстовом редакторе) а мы его из другой консоли возьмем и удалим? Ошибка записи? Как бы не так.
При открытии система выделяет операции файловый дескриптор, который и становится "документом" данной операции и в котором хранятся все ссылки на нужные этой операции ресурсы. И пока операция не завершена - "документ" будет действующим. На практике это обозначает вот что:
1. Открываем файл на запись. Получили дескриптор (первый).
2. Удаляем файл из другой консоли - получили собственный дескриптор этой второй операции.
3. Система отработала удаление, убрала упоминание о файле из каталога FS. НО!
4. Первый дескриптор то еще действует! И сохраняет все данные нужные чтобы в уже "не существующий" файл успешно писать. (Т.к. тело файла и выделенные для него кластеры еще не очищены - существующий дескриптор не дает.)
5. Завершаем запись. Успешно. Дескриптор операции закрывается.
6. Ядро удовлетворенно вздыхает... и помечает все сектора принадлежавшие телу файла как свободные. Потому что у файла не осталось ни имен (в каталогах FS) ни открытых дескрипторов. Т.е. больше эти данные не доступны, а значит - это просто свободное место. (Это касается всех UNIX-based файловых систем, но на btrfs используется особо широко.)

Вообще в линуксе файл является существующим, пока соблюдается условие: <количество имен файла> >= 1 && <количество дескрипторов> >= 1
При этом открыть новые дескрипторы можно только если имя еще существует. Но уже открытые - независимы.

Точно так же как в вышеописанном примере - можно параллельно переименовать уже открытый ранее на запись файл. И запись пройдет успешно. И изменения будут видны в файле с новым именем (винда же тупо не даст переименовать или удалить в подобном случае).

В случае же манипуляций со снапшотами btrfs (допустим - сделано переключение на новый), это обозначает что все файлы которые уже открыты - будут продолжать использоваться. Т.е. это будут файлы на старом субразделе. А вот вновь открываемый файлы будут уже на новом месте. Это действует даже при ОТМОНТИРОВАНИИ субраздела. Т.е. можно примонтировать субраздел, начать копировать туда файл, и сразу отмонтировать субраздел... а файл все равно будет дописан. :)

P.S. на этих же особенностях основаны способности пакетных менеджеров APT, Pacman, RPM, и т.д. обновлять систему без перезагрузок во время работы. :) Пофигу что программа запущена, а нужно переписать ее бинарник из нового пакета - перепишем без вопросов. Пока текущий экземпляр выполняется, его дескриптор существует, и старый файл тоже доступен.

no avatar

Автор темы
sasha300
Сообщения: 155
Зарегистрирован: 31 мар 2023, 08:56
Решено: 6
Благодарил (а): 107 раз
Поблагодарили: 7 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#6

19 май 2024, 03:02

Дальнейшее изучение Snapper порождает вопросы, но лучше создам отдельноый топик, а то спросил одно, а затем перескочил на совершенно другую тему..
Возвращаясь к сабжу - удалось воспроизвести ситуацию, при которой Timeshift перестает видеть субтом @: необходимо поставить систему так, чтобы /home находился на одном разделе с корнем (фс btrfs). Оба приложения (Timeshift и Snapper) прекрасно создают и восстанавливают снапшоты до тех пор, пока в терминале не выполнить команду:

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

sudo snapper --ambit classic rollback
после чего Timeshift резко забывает субтом @:
Снимок экрана_2024-05-19_02-35-18.png
Хотелось бы понять причину такого поведения.
Если же с помощью Snapper восстановить снапшоты, сделанные до ввода вышеприведенной команды, то на ситуацию это никак не влияет.
ну и выкладка blkid (сама система на разделе mmcblk0p2):

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

/dev/mmcblk0p5: BLOCK_SIZE="512" UUID="310DDB0123FEDB0A" TYPE="ntfs" PARTUUID="88691d70-f618-4367-8b40-8ec89f3a5d43"
/dev/mmcblk0p1: UUID="A144-24C8" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="b5958587-1b3f-4fd3-99ac-3a337e584543"
/dev/mmcblk0p4: UUID="60b96543-dddd-4f87-986b-70275fdb9bac" TYPE="swap" PARTUUID="2e3009b4-f705-49bf-8491-b928233515c0"
/dev/mmcblk0p2: UUID="1d3ac214-f639-46c2-9039-9ca38585eb88" UUID_SUB="f8cc9de0-e2da-41a0-b230-266bb18ba421" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="0fdd3ec8-0721-46f8-9d11-7a61b689d1a0"
/dev/sda1: LABEL="sd_32GB" UUID="6d2db28c-5a65-4724-9ae0-31e9627270b5" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ea66b5d4-01"
cat /etc/fstab:

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

sas@NB264:~$ cat /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk0p2 during installation
UUID=1d3ac214-f639-46c2-9039-9ca38585eb88 /               btrfs   defaults,subvol=@ 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=A144-24C8  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/mmcblk0p2 during installation
UUID=1d3ac214-f639-46c2-9039-9ca38585eb88 /home           btrfs   defaults,subvol=@home 0       2
# swap was on /dev/mmcblk0p4 during installation
UUID=60b96543-dddd-4f87-986b-70275fdb9bac none            swap    sw              0       0
snapper list:

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

sas@NB264:~$ sudo snapper list
  # | Тип    | № предварительного снимка | Дата                    | Пользователь | Очистка  | Описание        | Данные       
----+--------+---------------------------+-------------------------+--------------+----------+-----------------+--------------
 0  | single |                           |                         | root         |          | current         |              
 1  | single |                           | Чт 16 мая 2024 07:31:16 | root         |          |                 |              
 2  | single |                           | Чт 16 мая 2024 08:00:31 | root         | timeline | timeline        |              
 3  | pre    |                           | Чт 16 мая 2024 08:23:49 | root         | number   | apt             |              
 4  | post   |                         3 | Чт 16 мая 2024 08:23:52 | root         | number   | apt             |              
 5  | single |                           | Чт 16 мая 2024 08:25:39 | root         |          | 123             |              
 6  | single |                           | Чт 16 мая 2024 08:32:13 | root         | number   | without apache  |              
 7  | pre    |                           | Чт 16 мая 2024 08:32:43 | root         | number   | apt             |              
 8  | post   |                         7 | Чт 16 мая 2024 08:32:59 | root         | number   | apt             |              
 9  | single |                           | Чт 16 мая 2024 08:33:32 | root         | number   | after apache    |              
10  | pre    |                           | Чт 16 мая 2024 08:45:19 | root         | number   | apt             |              
11  | post   |                        10 | Чт 16 мая 2024 08:45:31 | root         | number   | apt             |              
12  | single |                           | Чт 16 мая 2024 08:52:15 | root         | number   | rollback backup | important=yes
13+ | single |                           | Чт 16 мая 2024 08:52:15 | root         |          | writable copy   |              
14  | single |                           | Чт 16 мая 2024 17:57:19 | root         | number   | boot            |              
17  | single |                           | Чт 16 мая 2024 19:04:26 | root         | number   | boot            |              
18  | single |                           | Чт 16 мая 2024 20:00:03 | root         | timeline | timeline        |              
19  | single |                           | Чт 16 мая 2024 21:00:27 | root         | timeline | timeline        |              
20  | single |                           | Пт 17 мая 2024 07:28:10 | root         | number   | boot            |              
21  | single |                           | Пт 17 мая 2024 08:00:49 | root         | timeline | timeline        |              
22  | single |                           | Пт 17 мая 2024 20:20:42 | root         | number   | boot            |              
23  | single |                           | Пт 17 мая 2024 22:17:24 | root         | timeline | timeline        |              
24  | single |                           | Пт 17 мая 2024 23:20:02 | root         | timeline | timeline        |              
25  | single |                           | Сб 18 мая 2024 10:32:47 | root         | timeline | timeline        |              
26  | single |                           | Сб 18 мая 2024 11:00:05 | root         | timeline | timeline        |              
27  | single |                           | Сб 18 мая 2024 14:10:49 | root         | timeline | timeline        |              
28  | single |                           | Сб 18 мая 2024 21:48:56 | root         | timeline | timeline        |              
29  | single |                           | Сб 18 мая 2024 21:52:27 | root         | number   | boot            |              
30  | single |                           | Сб 18 мая 2024 22:00:01 | root         | timeline | timeline        |              
31  | single |                           | Сб 18 мая 2024 23:00:05 | root         | timeline | timeline        |              
32  | single |                           | Вс 19 мая 2024 00:00:07 | root         | timeline | timeline        |              
33  | pre    |                           | Вс 19 мая 2024 00:07:48 | root         | number   | apt             |              
34  | post   |                        33 | Вс 19 мая 2024 00:07:54 | root         | number   | apt             |              
35  | pre    |                           | Вс 19 мая 2024 00:09:08 | root         | number   | apt             |              
36  | post   |                        35 | Вс 19 мая 2024 00:09:11 | root         | number   | apt             |              
37  | single |                           | Вс 19 мая 2024 01:00:07 | root         | timeline | timeline        |              
38  | single |                           | Вс 19 мая 2024 02:10:08 | root         | timeline | timeline        |              
39  | single |                           | Вс 19 мая 2024 02:55:09 | root         | number   | boot            |   
btrfs subvolume get-default / :

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

sas@NB264:~$ sudo btrfs subvolume get-default /
ID 434 gen 18527 top level 419 path @/.snapshots/13/snapshot
btrfs subvolume list / :

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

sas@NB264:~$ sudo btrfs subvolume list /
ID 258 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-03-31_16-27-42/@
ID 259 gen 13819 top level 5 path timeshift-btrfs/snapshots/2024-03-31_16-27-42/@home
ID 260 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-03-31_20-40-55/@
ID 261 gen 177 top level 5 path timeshift-btrfs/snapshots/2024-03-31_20-40-55/@home
ID 262 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-02-18/@
ID 263 gen 250 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-02-18/@home
ID 264 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-31-04/@
ID 265 gen 319 top level 5 path timeshift-btrfs/snapshots/2024-04-01_00-31-04/@home
ID 266 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-26-49/@
ID 267 gen 901 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-26-49/@home
ID 268 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-32-02/@
ID 269 gen 911 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-32-02/@home
ID 270 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-42-13/@
ID 271 gen 6566 top level 5 path timeshift-btrfs/snapshots/2024-04-04_20-42-13/@home
ID 302 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_00-45-56/@
ID 303 gen 7681 top level 5 path timeshift-btrfs/snapshots/2024-04-21_00-45-56/@home
ID 304 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_13-00-53/@
ID 305 gen 7764 top level 5 path timeshift-btrfs/snapshots/2024-04-21_13-00-53/@home
ID 306 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-21_17-47-26/@
ID 307 gen 8730 top level 5 path timeshift-btrfs/snapshots/2024-04-21_17-47-26/@home
ID 308 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-22_23-59-27/@
ID 309 gen 7709 top level 5 path timeshift-btrfs/snapshots/2024-04-22_23-59-27/@home
ID 322 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-31-28/@
ID 323 gen 7802 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-31-28/@home
ID 326 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-56-11/@
ID 327 gen 9592 top level 5 path timeshift-btrfs/snapshots/2024-04-23_00-56-11/@home
ID 357 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_00-21-17/@
ID 358 gen 9554 top level 5 path timeshift-btrfs/snapshots/2024-04-29_00-21-17/@home
ID 361 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_02-06-02/@
ID 362 gen 9521 top level 5 path timeshift-btrfs/snapshots/2024-04-29_02-06-02/@home
ID 369 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_11-10-13/@
ID 370 gen 9601 top level 5 path timeshift-btrfs/snapshots/2024-04-29_11-10-13/@home
ID 371 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-04-29_19-36-37/@
ID 372 gen 11400 top level 5 path timeshift-btrfs/snapshots/2024-04-29_19-36-37/@home
ID 377 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-05_12-39-40/@
ID 378 gen 13313 top level 5 path timeshift-btrfs/snapshots/2024-05-05_12-39-40/@home
ID 381 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-09_20-37-07/@
ID 382 gen 13953 top level 5 path timeshift-btrfs/snapshots/2024-05-09_20-37-07/@home
ID 385 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-09_21-12-31/@
ID 386 gen 13909 top level 5 path timeshift-btrfs/snapshots/2024-05-09_21-12-31/@home
ID 393 gen 17690 top level 5 path timeshift-btrfs/snapshots/2024-05-12_20-29-56/@
ID 394 gen 16857 top level 5 path timeshift-btrfs/snapshots/2024-05-12_20-29-56/@home
ID 397 gen 17694 top level 5 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@home
ID 398 gen 17695 top level 5 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@
ID 399 gen 17785 top level 5 path timeshift-btrfs/snapshots/2024-05-14_18-58-06/@
ID 400 gen 17784 top level 5 path timeshift-btrfs/snapshots/2024-05-14_18-58-06/@home
ID 401 gen 17650 top level 397 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@home/.snapshots
ID 402 gen 17685 top level 398 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots
ID 403 gen 17672 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/1/snapshot
ID 404 gen 17675 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/2/snapshot
ID 405 gen 17677 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/3/snapshot
ID 406 gen 17680 top level 402 path timeshift-btrfs/snapshots/2024-05-15_19-41-34/@/.snapshots/4/snapshot
ID 407 gen 17788 top level 5 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home
ID 408 gen 17788 top level 5 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@
ID 409 gen 17755 top level 408 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots
ID 410 gen 17740 top level 407 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home/.snapshots
ID 411 gen 17727 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/1/snapshot
ID 412 gen 17737 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/2/snapshot
ID 413 gen 17738 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/3/snapshot
ID 414 gen 17740 top level 410 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@home/.snapshots/1/snapshot
ID 415 gen 17741 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/4/snapshot
ID 416 gen 17749 top level 409 path timeshift-btrfs/snapshots/2024-05-15_20-25-03/@/.snapshots/5/snapshot
ID 417 gen 18684 top level 5 path @home
ID 418 gen 18684 top level 5 path @
ID 419 gen 18684 top level 418 path .snapshots
ID 420 gen 18683 top level 417 path @home/.snapshots
ID 421 gen 17826 top level 419 path .snapshots/1/snapshot
ID 422 gen 17869 top level 420 path @home/.snapshots/1/snapshot
ID 423 gen 17870 top level 419 path .snapshots/2/snapshot
ID 424 gen 17907 top level 419 path .snapshots/3/snapshot
ID 425 gen 17908 top level 419 path .snapshots/4/snapshot
ID 426 gen 17913 top level 419 path .snapshots/5/snapshot
ID 427 gen 17924 top level 419 path .snapshots/6/snapshot
ID 428 gen 17925 top level 419 path .snapshots/7/snapshot
ID 429 gen 17926 top level 419 path .snapshots/8/snapshot
ID 430 gen 17929 top level 419 path .snapshots/9/snapshot
ID 431 gen 17951 top level 419 path .snapshots/10/snapshot
ID 432 gen 17952 top level 419 path .snapshots/11/snapshot
ID 433 gen 17965 top level 419 path .snapshots/12/snapshot
ID 434 gen 18527 top level 419 path .snapshots/13/snapshot
ID 435 gen 17976 top level 419 path .snapshots/14/snapshot
ID 440 gen 18043 top level 419 path .snapshots/17/snapshot
ID 441 gen 18108 top level 420 path @home/.snapshots/4/snapshot
ID 442 gen 18108 top level 419 path .snapshots/18/snapshot
ID 443 gen 18185 top level 420 path @home/.snapshots/5/snapshot
ID 444 gen 18185 top level 419 path .snapshots/19/snapshot
ID 445 gen 18199 top level 419 path .snapshots/20/snapshot
ID 446 gen 18234 top level 420 path @home/.snapshots/6/snapshot
ID 447 gen 18234 top level 419 path .snapshots/21/snapshot
ID 448 gen 18254 top level 419 path .snapshots/22/snapshot
ID 449 gen 18291 top level 420 path @home/.snapshots/7/snapshot
ID 450 gen 18292 top level 419 path .snapshots/23/snapshot
ID 451 gen 18295 top level 420 path @home/.snapshots/8/snapshot
ID 452 gen 18296 top level 419 path .snapshots/24/snapshot
ID 453 gen 18298 top level 420 path @home/.snapshots/9/snapshot
ID 454 gen 18299 top level 419 path .snapshots/25/snapshot
ID 455 gen 18335 top level 420 path @home/.snapshots/10/snapshot
ID 456 gen 18335 top level 419 path .snapshots/26/snapshot
ID 457 gen 18350 top level 420 path @home/.snapshots/11/snapshot
ID 458 gen 18350 top level 419 path .snapshots/27/snapshot
ID 459 gen 18390 top level 420 path @home/.snapshots/12/snapshot
ID 460 gen 18390 top level 419 path .snapshots/28/snapshot
ID 461 gen 18397 top level 419 path .snapshots/29/snapshot
ID 462 gen 18408 top level 420 path @home/.snapshots/13/snapshot
ID 463 gen 18408 top level 419 path .snapshots/30/snapshot
ID 464 gen 18450 top level 420 path @home/.snapshots/14/snapshot
ID 465 gen 18450 top level 419 path .snapshots/31/snapshot
ID 466 gen 18520 top level 420 path @home/.snapshots/15/snapshot
ID 467 gen 18521 top level 419 path .snapshots/32/snapshot
ID 468 gen 18533 top level 419 path .snapshots/33/snapshot
ID 469 gen 18534 top level 419 path .snapshots/34/snapshot
ID 470 gen 18538 top level 419 path .snapshots/35/snapshot
ID 471 gen 18539 top level 419 path .snapshots/36/snapshot
ID 472 gen 18588 top level 420 path @home/.snapshots/16/snapshot
ID 473 gen 18589 top level 419 path .snapshots/37/snapshot
ID 474 gen 18621 top level 420 path @home/.snapshots/17/snapshot
ID 475 gen 18622 top level 419 path .snapshots/38/snapshot
ID 476 gen 18672 top level 419 path .snapshots/39/snapshot
ID 477 gen 18683 top level 420 path @home/.snapshots/18/snapshot
ID 478 gen 18683 top level 419 path .snapshots/40/snapshot

Аватара пользователя

Dja
Сообщения: 7069
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1368 раз
Поблагодарили: 734 раза
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#7

20 май 2024, 16:49

sasha300 писал(а):
19 май 2024, 03:02
ID 419 gen 18684 top level 418 path .snapshots
ID 420 gen 18683 top level 417 path @home/.snapshots
ID 421 gen 17826 top level 419 path .snapshots/1/snapshot
ID 422 gen 17869 top level 420 path @home/.snapshots/1/snapshot
А зачем он по 2 раза то повторяет? :hoho:

Аватара пользователя

rogoznik
Сообщения: 10433
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#8

20 май 2024, 17:22

Dja, xnj что повторяет? Пути разные показывает
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4844
Зарегистрирован: 21 июн 2017, 18:09
Решено: 110
Благодарил (а): 53 раза
Поблагодарили: 2168 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#9

20 май 2024, 19:14

sasha300,
Timeshift при работе со снапшотами переименовывает @ и снапшот, насколько я помню.

Snapper работает по другому. Он просто выставляет default маркер на нужный subvolume(сабраздел/снапшот).

По умолчанию оный маркер стоит на сабтоме с ID 5. Смысл маркера - он указывает ядру и системе какой сабраздел монтировать во время выполнения mount для btrfs если не было опции "subvol="
Т.е. ставя маркер - указываем где именно у нас будет корневой раздел. Это сильно облегчает вопросы запуска системы из загрузчика - поменяв маркер default более не нужно править никаких конфигов или обновлять загрузчик чтобы загрузился уже новый снапшот кореня системы. Проблема же в том, что timeshift, если я правильно помню, подразумевает сохранение default маркера на subvolume с именем/путем @ или ID 5. Хотя это не то, что просто не нужно для нормальной работы системы на btrfs, а как-бы вообще противоречит ее (btrfs) принципам. :)
По сути, при полностью "академической" установке системы на btrfs, опция subvol=@ вообще не нужна нигде, для указания сабтома где находится корень системы. Ни в загрузчике ни fstab. Корнем будет default сабтом. (Вот про @home отдельно - там опция ставится.)

При rollback - snapper тоже меняет default маркер, и откатывает его на предыдущий сабтом. Который получается не @ и не с ID 5. Смотрите текущее состояние через sudo btrfs sub get-default / Там же и установить можно вручную через set-default

ID - это абсолютные номера сущностей на btrfs, они никогда не меняются. Самый первый сабтом btrfs при ее создании получает ID 5, и метку default. Это изначальный корень btrfs (не имеющий символьного имени!).
В дальнейшем он может быть спокойно удален как любой другой. А в процессе установки Ubuntu/Mint создают на этом сабтоме с ID 5 два других сабтома - @ для корня системы, и @home для хомяков.
Имена же, в отличии от ID - могут быть изменены, как имя каталога. А кроме того они еще и могут быть вложенными - т.е. сабтом может быть вида @/.snaps - здесь внутри сабтома @ находится сабтом .snaps
И при переименовании @ во что-то еще такой путь тоже поменяется! Только ID неизменны, а маркеру default на имена тоже пофиг - он тоже на ID завязан. Отсюда и косяки timeshift который с именами работает а не с ID. С учетом того, что он еще и хранит снапшоты на другом сабтоме (текущем @) с доступом по имени и жонглирует ими во время смены снапшота - понимаете теперь откуда весь этот бардак?

В случае нормальной конфигурации под snapper структура диска должна выглядеть примерно так:

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

(ID 5)/
     /@
     /@home
     /snapshots
Где в snapshots оные и живут. Здесь на всякий случай напоминаю - символ @ - это не технический признак сабтома, а лишь общеиспользуемое соглашение (как у программистов про имена переменных). Однако вышеописанная структура именно такова: @ - изначальный корень системы, а дальше он может быть переключен на любой снапшот через set-default (что snapper и делает). После чего в сохранении /@ смысла уже не так много, но оно удобно для ручного манипулирования через "sudo btrfs sub ..." если до такого когда-то доходит.
На практике - Ubuntu\Mint слишком завязаны на имя @ как корень системы, потому snapper его обычно тоже поддерживает связанным с нужным снапшотом. Вообще - там возможности конфигурации довольно гибкие, и все это можно в конфигах задать.

no avatar

Автор темы
sasha300
Сообщения: 155
Зарегистрирован: 31 мар 2023, 08:56
Решено: 6
Благодарил (а): 107 раз
Поблагодарили: 7 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#10

21 май 2024, 23:31

slant, Респект за такой развернутый ответ, проводил различные манипуляции на тестовом ноутбуке, в итоге понял, что это целая наука и сразу учесть все тонкости не получиться (у меня Timeshift так и не увидел субтома).
slant писал(а):
20 май 2024, 19:14
Отсюда и косяки timeshift который с именами работает а не с ID. С учетом того, что он еще и хранит снапшоты на другом сабтоме (текущем @) с доступом по имени и жонглирует ими во время смены снапшота
За пару дней экспериментов пришло явное осознание того, что использование BTRFS в связке с Timeshift не самое лучшее решение. Найти нужный субтом, поставить его дефолтным, загрузится с него и т.д. и т.п., короче нафиг. В дальнейшем юзаю true приложение для Btrfs - Snapper.

Аватара пользователя

Dja
Сообщения: 7069
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1368 раз
Поблагодарили: 734 раза
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#11

02 авг 2024, 08:50

rogoznik писал(а):
20 май 2024, 17:22
Dja, xnj что повторяет? Пути разные показывает
Всё равно странно.
dja@dja-work:~$ sudo btrfs sub list /
ID 304 gen 57466 top level 5 path @
ID 306 gen 57462 top level 304 path .snapshots
ID 334 gen 56635 top level 306 path .snapshots/1/snapshot
ID 335 gen 56638 top level 306 path .snapshots/2/snapshot
ID 336 gen 56750 top level 306 path .snapshots/3/snapshot
ID 337 gen 56805 top level 306 path .snapshots/4/snapshot
ID 338 gen 56807 top level 306 path .snapshots/5/snapshot
ID 339 gen 56812 top level 306 path .snapshots/6/snapshot
ID 340 gen 56815 top level 306 path .snapshots/7/snapshot
ID 341 gen 56924 top level 306 path .snapshots/8/snapshot
ID 342 gen 56926 top level 306 path .snapshots/9/snapshot
ID 343 gen 56927 top level 306 path .snapshots/10/snapshot
ID 344 gen 56929 top level 306 path .snapshots/11/snapshot
dja@dja-work:~$ sudo snapper -c root list
  # | Тип    | № предварительного снимка | Дата                    | Пользователь | Очистка | Описание | Данные
----+--------+---------------------------+-------------------------+--------------+---------+----------+-------
 0  | single |                           |                         | root         |         | current  |       
 1  | pre    |                           | Чт 01 авг 2024 12:54:10 | root         | number  | apt      |       
 2  | post   |                         1 | Чт 01 авг 2024 12:54:39 | root         | number  | apt      |       
 3  | single |                           | Чт 01 авг 2024 15:00:08 | root         | number  | boot     |       
 4  | pre    |                           | Чт 01 авг 2024 15:43:49 | root         | number  | apt      |       
 5  | post   |                         4 | Чт 01 авг 2024 15:44:08 | root         | number  | apt      |       
 6  | pre    |                           | Чт 01 авг 2024 15:47:00 | root         | number  | apt      |       
 7  | post   |                         6 | Чт 01 авг 2024 15:47:11 | root         | number  | apt      |       
 8  | pre    |                           | Чт 01 авг 2024 17:41:36 | root         | number  | apt      |       
 9  | post   |                         8 | Чт 01 авг 2024 17:41:42 | root         | number  | apt      |       
10  | pre    |                           | Чт 01 авг 2024 17:41:55 | root         | number  | apt      |       
11  | post   |                        10 | Чт 01 авг 2024 17:42:01 | root         | number  | apt      |       
dja@dja-work:~$ sudo btrfs sub list /home/
ID 262 gen 131529 top level 5 path @home
ID 264 gen 129235 top level 262 path .snapshots
dja@dja-work:~$ sudo snapper -c home list
 # | Тип    | № предварительного снимка | Дата | Пользователь | Очистка | Описание | Данные
---+--------+---------------------------+------+--------------+---------+----------+-------
0  | single |                           |      | root         |         | current  |       
dja@dja-work:~$ 
Кстати, почему кол-во снимков в snapper и напрямую отличается на один?

Аватара пользователя

rogoznik
Сообщения: 10433
Зарегистрирован: 27 июн 2017, 13:36
Решено: 135
Откуда: Нижний Тагил
Благодарил (а): 792 раза
Поблагодарили: 2051 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#12

02 авг 2024, 09:18

Dja писал(а):
02 авг 2024, 08:50
почему кол-во снимков в snapper и напрямую отличается на один?
Не вижу отличий
ИзображениеИзображение

Аватара пользователя

Dja
Сообщения: 7069
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1368 раз
Поблагодарили: 734 раза
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#13

02 авг 2024, 12:16

Корень
dja@dja-work:~$ sudo snapper -c root list
[sudo] пароль для dja:           
  # | Тип    | № предварительного снимка | Дата                    | Пользователь | Очистка | Описание | Данные
----+--------+---------------------------+-------------------------+--------------+---------+----------+-------
 0  | single |                           |                         | root         |         | current  |       
 3  | single |                           | Чт 01 авг 2024 15:00:08 | root         | number  | boot     |       
 4  | pre    |                           | Чт 01 авг 2024 15:43:49 | root         | number  | apt      |       
 5  | post   |                         4 | Чт 01 авг 2024 15:44:08 | root         | number  | apt      |       
 6  | pre    |                           | Чт 01 авг 2024 15:47:00 | root         | number  | apt      |       
 7  | post   |                         6 | Чт 01 авг 2024 15:47:11 | root         | number  | apt      |       
 8  | pre    |                           | Чт 01 авг 2024 17:41:36 | root         | number  | apt      |       
 9  | post   |                         8 | Чт 01 авг 2024 17:41:42 | root         | number  | apt      |       
10  | pre    |                           | Чт 01 авг 2024 17:41:55 | root         | number  | apt      |       
11  | post   |                        10 | Чт 01 авг 2024 17:42:01 | root         | number  | apt      |       
12  | single |                           | Пт 02 авг 2024 09:21:17 | root         | number  | boot     |  
11
dja@dja-work:~$ sudo btrfs subvolume list /
ID 304 gen 57613 top level 5 path @
ID 306 gen 57527 top level 304 path .snapshots
ID 336 gen 56750 top level 306 path .snapshots/3/snapshot
ID 337 gen 56805 top level 306 path .snapshots/4/snapshot
ID 338 gen 56807 top level 306 path .snapshots/5/snapshot
ID 339 gen 56812 top level 306 path .snapshots/6/snapshot
ID 340 gen 56815 top level 306 path .snapshots/7/snapshot
ID 341 gen 56924 top level 306 path .snapshots/8/snapshot
ID 342 gen 56926 top level 306 path .snapshots/9/snapshot
ID 343 gen 56927 top level 306 path .snapshots/10/snapshot
ID 344 gen 56929 top level 306 path .snapshots/11/snapshot
ID 345 gen 57514 top level 306 path .snapshots/12/snapshot
12
dja@dja-work:~$ sudo ls -ll /.snapshots/
итого 4
drwxr-xr-x 1 root root 32 авг 1 17:41 10
drwxr-xr-x 1 root root 62 авг 1 17:42 11
drwxr-xr-x 1 root root 32 авг 2 09:21 12
drwxr-xr-x 1 root root 32 авг 1 15:00 3
drwxr-xr-x 1 root root 32 авг 1 15:43 4
drwxr-xr-x 1 root root 60 авг 1 15:44 5
drwxr-xr-x 1 root root 32 авг 1 15:47 6
drwxr-xr-x 1 root root 60 авг 1 15:47 7
drwxr-xr-x 1 root root 32 авг 1 17:41 8
drwxr-xr-x 1 root root 60 авг 1 17:41 9
10
что соответствует прописанному лимиту
# limit for number cleanup
NUMBER_MIN_AGE="1800"
NUMBER_LIMIT="10"
NUMBER_LIMIT_IMPORTANT="10"
хомяк
dja@dja-work:~$ sudo snapper -c home list
[sudo] пароль для dja:           
 # | Тип    | № предварительного снимка | Дата | Пользователь | Очистка | Описание | Данные
---+--------+---------------------------+------+--------------+---------+----------+-------
0  | single |                           |      | root         |         | current  |       
1
dja@dja-work:~$ sudo btrfs subvolume list /home/
ID 262 gen 131835 top level 5 path @home
ID 264 gen 129235 top level 262 path .snapshots
2
dja@dja-work:~$ sudo ls -ll /home/.snapshots/
итого 0
0

Аватара пользователя

slant
Сообщения: 4844
Зарегистрирован: 21 июн 2017, 18:09
Решено: 110
Благодарил (а): 53 раза
Поблагодарили: 2168 раз
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#14

02 авг 2024, 13:17

1. .snapshots - это у тебя сам по себе снапшот. Их имена могут быть в файловой системе вложенными - как каталоги, но по факту - это плоская структура. ID - первичен, а они одноранговые.

2. snapper свои собственные id (столбец #) не привязывает к id btrfs - по дурацки сделано, я знаю. Но факт. Этот id - исключительно его собственный. Проявляется в каталоге который часть имени снапшота в выводе btrfs sub list.

3. Если у тебя с хомяка не делаются снапшоты - проверь скрипты cron-а - снаппер через него работает, нет никакой скрытой магии в нем. Все на глазах - скорее всего просто команды делать такой снапшот нету.

Аватара пользователя

Dja
Сообщения: 7069
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1368 раз
Поблагодарили: 734 раза
Контактная информация:

Timeshift не видит фс btrfs, после экспериментов со snapper, как починить?:

#15

05 авг 2024, 08:50

slant, в кроне тишина
dja@dja-work:~$ crontab -l
no crontab for dja
dja@dja-work:~$ sudo crontab -l
no crontab for root
dja@dja-work:~$
Думаю дело в самих конфигах napper
upd... хотя нет... конфиги одинаковые...
Но опять-таки если включить ежечасные - то делает.
А при буте в юните прописано только рут. Что вобщем-то устраивает.
dja@dja-work:~$ cat /lib/systemd/system/snapper-boot.service
[Unit]
Description=Take snapper snapshot of root on boot
ConditionPathExists=/etc/snapper/configs/root
Documentation=man:snapper(8)

[Service]
Type=oneshot
ExecStart=/usr/bin/snapper --config root create --cleanup-algorithm number --description "boot"
dja@dja-work:~$ 

Ответить

Вернуться в «Загрузка системы, бэкапы и восстановление»

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

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