LINUX.ORG.RU
решено ФорумAdmin

Не могу удалить каталог -Btrfs глючит

 , жесткий диск,


0

7

Здравствуйте.
Словил глюк -не могу удалить каталог в орт на отдельном разделе.
btrfs scrub ошибок не нашел !!!
btrfs check --repair /dev/sda3 ошибок не выявил,смарт в норме . Виктория бад блоков не выявила.Поясняю удаляеться нормально,ошибок нет,но после перезагрузки или монтирования происходит откат с указанной ошибкой.
Из бэкапа как говориться я всегда могу раздел востановить ,но блин считай сутки терять не охота .Есть рецепт починить проблему ?

Лог ошибок:

823.197293] BTRFS critical (device sda3): corrupt leaf: block=2669677215744 slot=35 extent bytenr=2220399398912 len=36864 invalid data ref objectid value 18446744073709551604
[  823.197315] BTRFS error (device sda3): read time tree block corruption detected on logical 2669677215744 mirror 1
[  823.205394] BTRFS critical (device sda3): corrupt leaf: block=2669677215744 slot=35 extent bytenr=2220399398912 len=36864 invalid data ref objectid value 18446744073709551604
[  823.205400] BTRFS error (device sda3): read time tree block corruption detected on logical 2669677215744 mirror 2
[  823.205439] BTRFS error (device sda3: state A): Transaction aborted (error -5)
[  823.205445] BTRFS: error (device sda3: state A) in __btrfs_free_extent:3273: errno=-5 IO failure
[  823.205449] BTRFS info (device sda3: state EA): forced readonly
[  823.205452] BTRFS error (device sda3: state EA): failed to run delayed ref for logical 2220449775616 num_bytes 77824 type 178 action 2 ref_mod 1: -5
[  823.205457] BTRFS: error (device sda3: state EA) in btrfs_run_delayed_refs:2277: errno=-5 IO failure
[  823.206096] BTRFS info (device sda3: state EA): last unmount of filesystem 6575f960-d7e4-44da-af07-3a4a80397ded
[  828.473781] BTRFS: device label opt devid 1 transid 63295 /dev/sda3 scanned by mount (4826)
[


Уточняю: мелкими блоками я все таки папку почистил, остались только не удаляемые файлы.Теперь scrub отваливается от ошибки вода-вывода . Дополню -файлы с помощью rsunc -c с раздела скопировал,ошибок не было.На всякий случай с другим бэкапом сравню.Так что если решение не найдется раздел снесу отформатироваю.
Решено.
Вспомнил я про Parted Magic от 22 года, который платный но добрые люди скинули в сеть.Он тоже ругался на метаданные в журнале но папку то удалил .




Перемещено hobbit из general

★★

Последнее исправление: maximnik0 (всего исправлений: 4)
Ответ на: комментарий от mx__

Можно считать, что это просто каталог, но в нём независимая нумерация inode. Можно сказать, что это ещё один корневой каталог (/), но где-то в другом месте. Монтирование subvolume работает аналогично bind mount (и, как сказано по ссылке выше, это оно и есть). Подтома не имеют никакого отношения к блочным устройствам, это пространства имён в файловой системе.

anonymous
()
Ответ на: комментарий от anonymous

Подтома не имеют никакого отношения к блочным устройствам, это пространства имён в файловой системе.

Не понял. Туплю. Вот у меня фс, если я к такой то папке примонтирую устройство то при переходе внутрь этой директории я сразу перейду на это устройство. Я не смогу сделать там под директорию на первом устройстве пока не отмонтирую это устройство.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Вот у меня фс, если я к такой то папке примонтирую устройство то при переходе внутрь этой директории я сразу перейду на это устройство. Я не смогу сделать там под директорию на первом устройстве пока не отмонтирую это устройство.

В Btrfs так же.

anonymous
()
Ответ на: комментарий от mx__

Задавай более конкретные вопросы. Блочные устройства это вообще дело десятое. Файловая система это опциональная абстракция над [опциональным] блочным устройством, там может не быть понятия свободного пространства в принципе. Btrfs в этом смысле работает примерно как и ext4/XFS.

anonymous
()
Ответ на: комментарий от anonymous

Задавай более конкретные вопросы.

Ну я много работаю с KVM. Bсегда у меня это отдельный том LVM. Т.е. внутри ВМ это конкретный диск - конкретного размера. И вот у меня btrfs, нет LVM …

Или вот, есть партиция я ее монтирую в такую то диру. И она форматирована как btrfs, а тут внезапно можно отформатировать в btrfs не только партицию а весь диск. Это вообще как?

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

Или вот, есть партиция я ее монтирую в такую то диру. И она форматирована как btrfs, а тут внезапно можно отформатировать в btrfs не только партицию а весь диск. Это вообще как?

Держись крепче: отформатировать весь диск можно даже в FAT 🤯

anonymous
()
Ответ на: комментарий от anonymous

Но есть qcow2 и raw в файлах.

Давно я пробовал использовать raw файлы но это было много медленее чем LVM. А уж qcow2 вообще отстой, хотя у нее был один плюс диск занимал мало фс и рос … но с такой скоростью работы мне такое нафиг не нужно.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Там не будет MBR. Мне кажется, тебе надо начать с основ, разобраться, как оно всё выглядит на физическом уровне: блочные устройства, разметка, файловые системы, LVM, MD. У меня сильное ощущение, что ты владеешь некими типовыми подходами к использованию, но без особого понимания, как оно вообще работает

"Я могу объяснить, но не могу сделать так, чтобы ты понял."©

anonymous
()
Ответ на: комментарий от mx__

Никто у тебя LVM не забирает, Btrfs не пытается (пока?) эту технологию заменить. Оно действительно неплохо подходит для виртуализации, когда надо иметь приличную производительность I/O. Правда, когда надо, чтобы было действительно быстро, виртуализация нежелательна.

anonymous
()
Ответ на: комментарий от anonymous

Никто у тебя LVM не забирает, Btrfs не пытается (пока?) эту технологию заменить. Оно действительно неплохо подходит для виртуализации, когда надо иметь приличную производительность I/O. Правда, когда надо, чтобы было действительно быстро, виртуализация нежелательна.

Это я указал для конкретики. Ведь просили конкретный вопрос.

mx__ ★★★★★
()
Ответ на: комментарий от NyXzOr

Создается сабволюм с файлом raw, внутри которого ФС ext4.

Я уже писал выше. файл образ raw это медленне чем блочный lvm внутри KVM.

И кстати по всяким докам по btrfs рекомендуется COW вырубать на таких файлах и там возникает тогда проблема со снапшотами btrfs … такое себе.

mx__ ★★★★★
()
Ответ на: комментарий от nicholas_ru

Она вроде делает снапшоты

Она не делает снапшоты.Это вы с Хаммер ФС (стрекоза бсд подобная ось) перепутали. Да снапшоты можно делать из за СOW семантики. Но если блок данных поврежден - снимок не поможет.
Другое дело что исключительно сложно для этой ФС делать средство проверки, вдобавок часть функционала перенесли на диагностику- в некоторых случаях проще отформатировать и заново поставить .А сам долго не понимал как так- а теперь понимаю,данные и метаданные проверяются контрольной суммой , блок после записи проверяется, т.е с Бад блоком ФС должна сама в фоновом режиме справиться.А вот логическая ошибка в методанных это да геморрой,как исправить не понятно- и из за этого вся ФС может колом и встать ,вдруг все развалиться,т.к не может вести COW транзакции то и не может записывать и удалять данные.

maximnik0 ★★
() автор топика
Ответ на: комментарий от anonymous

Не любая это точно - есть таблица сравнения ФС в Википедии и там в свойствах некоторые ФС без таблицы разметки не работают из за того что геометрия берется из таблицы а логические единицы с кластерами жёсткого не совпадают.

maximnik0 ★★
() автор топика
Ответ на: комментарий от maximnik0

А если сбой в метаданных образовался из-за невозможности записать? Как и удаление невозможно из-за этого же? Освобождение фрагментов, занятых менее чем наполовину, может дать нужное свободное место.

anonymous
()
Ответ на: комментарий от anonymous

А если сбой в метаданных образовался из-за невозможности записать?

В этом случае ты сразу получишь EIO или ENOSPC, ничего не испортится. У меня не раз отваливались подключённые по USB диски в процессе записи, и Btrfs это переносит на удивление спокойно.

anonymous
()
Ответ на: комментарий от anonymous

Сейчас нету ошибки нет места для методанных.Если не хватает места выделиться дополнительный блок для методанных при условии что есть место на диске. И да ,в методанных тоже есть журнал - если запись не завершена -произойдет откат до завершенных операций с методанными, т.е будет не противоречивое состояние данных.

maximnik0 ★★
() автор топика
Ответ на: комментарий от nicholas_ru

Снимок это всегда внешняя операция для этой ФС.Есть сейчас во многих дистрибутивах автоматические снимки при загрузке,по таймеру,обновлению.Но совершает их утилита Snapper. В отличие от Хаммера - где снимок это свойство журнала COW.

maximnik0 ★★
() автор топика
Ответ на: комментарий от maximnik0

Но совершает их утилита Snapper.

Я хз что там делает этот Snapper, и не совсем понятно что значит внешняя операция по сути весь COW это можно сказать последовательность снимков без сохранения метаданных. Просто на время снимка нужно эти метаданные просто сохранить и все.

mx__ ★★★★★
()
Ответ на: комментарий от maximnik0

Ну, да, в идеале так.
Но, если удаляется много данных за 1 раз, транзакция может быть большой, и выделяемых блоков для мета-данных может не хватить, т.к. коммит отложеный. Ожидая, что после удаления коммит произошёл, ты запустил перезагрузку. А если он не произошёл, а? И получится, что, независимо от лога, транзакция в полу-накаченом состоянии. (Кто его знает, какая там внутри кухня? есть ли промежуточные чек-поинты или нет? и докуда он откатит, до ближайшего чек-поинта или всю длинную транзакцию? и хватит ли у него свободного места, чтобы ещё и сделать откат транзакции после перезагрузки…) Всё это к тому, что на btrfs всегда должно быть свободное место… А вот сколько, вопрос. Кто-то говорит про 10%, кто-то про 20%… Судя по всему, нужно считать предметно для каждого случая применения…

PS
Использую для неответственных данных из-за сжатия (zstd:15), периодически делаю балансировку с высвобождением. Например: 13GB полезных данных сжимаются до 9GB, при этом занято на btrfs 12GB, после балансировки 9,5GB. Т.е. в моём случае польза от балансировки есть. И свободное место для удаления тоже есть.

anonymous
()
Ответ на: комментарий от mx__

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

maximnik0 ★★
() автор топика
Последнее исправление: maximnik0 (всего исправлений: 1)
Ответ на: комментарий от MoldAndLimeHoney

Продолжу использовать. Не смотря на её недостатки - у меня не разу не было что данные нельзя было вытащить. Другое дело что средства корректировки ошибок для этой ФС нуждается в доработке -драйвер видит рассинхрон а утилиты нет :-( ,и очень долго и мучительно их пишут, такое ощущение что по остаточному принципу, хорошо хоть теперь не падают на ровном месте. У XFS свои тараканы - контрольной суммы для данных пока нет,кроме патчей для fs-verity . Чуда с bcachefs вряд-ли произойдет не смотря на все её вкусности- одному человеку не реально всё тащить, а Кейн очень сложный тип, народ предлагал ему помощь:-(

maximnik0 ★★
() автор топика
Ответ на: комментарий от maximnik0

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

Другое дело если будешь менять параметры по умолчанию то тут ССЗБ.

mx__ ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Да я уже глянул, по рекомендациям так можно но не рекомендуют, так в определенный момент туды может ухнуться (тот же core.img от grub) и не поместиться в начале … со всем вытекающим.

mx__ ★★★★★
()
Ответ на: комментарий от rtxtxtrx

https://wiki.archlinux.org/title/Btrfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

пункт 6.1

Там есть слова: Кроме того, GRUB настоятельно не рекомендует установку на диск без разделов.

Я как найду конкретно про это еще ссылку кину.

О там это было, 7.1.1

Что это бред можете сразу авторам этой статьи писать.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

груб ставится на загрузочный раздел, раздел на диске с разметкой mbr/gpt, помечанный как загрузочный с файловой системой fat… поставить его, конечно, можно на диск без разделов, но работать не будет…

да и груб не нужен, когда systemd-boot встроенный

rtxtxtrx ★★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

Не понимаю.

Ладно, вот мое предложение:

Да я уже глянул, по рекомендациям так можно но не рекомендуют, так в определенный момент туды может ухнуться (тот же core.img от grub) и не поместиться в начале … со всем вытекающим.

Так где здесь вторая часть с бредом?

mx__ ★★★★★
()
Ответ на: комментарий от rtxtxtrx

это не относится к файловой системе на весь диск

(Извините, можете цитировать? А то я путаюсь.)

Что это? То что не относится к фс на весь диск.

mx__ ★★★★★
()

Спустя 3 дня:
Полностью проверил Викторией весь диск- нашла 1 промах по сектору .smart это дело отметил,перезаписал дорожку,но без Бад блока.Проверил scrub и chesk все разделы,ошибок теперь нет.Все нормально пишет,удаляет и читает.Где «друзья-товарищи» кто советовал жёсткий на помойку выкинуть ?

maximnik0 ★★
() автор топика