LINUX.ORG.RU

Потеря BTRFS

 


0

1

История следующая: Kubuntu 20.04, ssd. Корневой раздел - BTRFS, без boot (он отдельно), с сабвольюмом @home, всё вместе ~250 Gb. Был на том ssd ещё один раздел для эксперементов, и решил я его снести и расширить корневой на него. Я подобное уже делал, но из консоли, а тут решил попробовать GParted. Зря.
Вначале всё было хорошо. Раздел расширился, всё работает. Но так было до перезагрузки. Далее грузился только initramfs и всё, он не мог найти раздел sda6. Не буду грузить вас подробностями всех сопутствующих проблем, суть в том, что раздел sda6 есть, его можно подмонтировать с ключом "-t btrfs", файлы читаются, GParted показвает всю информацию о разделе. Но вот blkid, например, ничего о нём не показывает, как будто нет его!
Начал я пробовать всякие восстановления. Сначала так, и у меня тоже нашёлся проблемный файл в Steam, который я подобным образом удалил. Не помогло. Потом я где-то наткнулся на команду:

btrfsck --repair --init-extent-tree
И ввёл её. Сразу побежали надписи вроде:
Repaired extent references for 742905724928
ref mismatch on [742905729024 4096] extent item 0, found 1
data backref 742905729024 parent 747359780864 owner 0 offset 0 num_refs 0 not found in extent tree
incorrect local backref count on 742905729024 parent 747359780864 owner 0 offset 0 found 1 wanted 0 back 0x56068ca1d350
backpointer mismatch on [742905729024 4096]
adding new data backref on 742905729024 parent 747359780864 owner 0 offset 0 found 1
Ну я такой думаю, хорошо, сейчас дерево перестоится, и всё будет норм. НО этот процесс идёт уже третьи сутки. И тут у меня возникают несколько вопросов:
- Что означает текст вывода команды?
- Можно ли его остановить или это будет фатально? А если свет «моргнёт»?
- как долго может идти этот процесс на 300 Gb ssd?
- Возможно стоило попробовать что-то ещё, прежде чем запускать перестроение дерева (если бы знать заранее)?
Извините за сумбурный текст, у меня тут просто третьи сутки сплошной кортизол.

Продолжайте наблюдение

kto_tama ★★★★★
()

Что означает текст вывода команды?

Исправлены ссылки на экстенты для 742905724928.
несоответствие ref на [742905729024 4096] элемент экстента 0, найдено 1
data backref 742905729024 parent 747359780864 owner 0 offset 0 num_refs 0 не найдено в дереве экстентов
неправильный подсчет локальных обратных ссылок на родительском элементе 742905729024 747359780864 владелец 0 смещение 0 найдено 1 требуется 0 назад 0x56068ca1d350
несоответствие обратного указателя на [742905729024 4096]
добавление новой обратной ссылки данных на 742905729024 родителя 747359780864 владельца 0 смещение 0 найдено 1

это https://translate.google.com

не благодари.

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

Инглия лангваге я более-менее андестенд, но легче от этого не стало.

Strannik-j ★★
() автор топика

Возможно стоило попробовать что-то ещё, прежде чем запускать перестроение дерева (если бы знать заранее)?

Да! Там же не одно предупреждение и даже десятисекундная задержка, чтобы одуматься.

Можно ли его остановить или это будет фатально? А если свет «моргнёт»?

Сейчас опытным путём проверю.

token_polyak ★★★★★
()

Можно ли его остановить

Там же CoW архитектура, так что да.

это будет фатально?

Убийство ФС — это штатный результат работы --repair.
Во всяком случае, такой был мой предыдущий опыт.

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

Сейчас опытным путём проверю.

В таком случае всё ещё можно спасать файлы используя btrfs restore.

token_polyak ★★★★★
()

третьи сутки

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

выглядит это так 1 ядро процессора грузится постоянно на 98-101% и при этом потребление памяти этим процессом не изменяется вовсе, оно еще кстати ни на какие kill -9 не реагирует.

bhfq ★★★★★
()

Потеря BTRFS

Это нормально, что вы хотели от альфа-версии, которая в этом статусе застряла навсегда?

Psychosis
()
Ответ на: комментарий от Strannik-j

Это же просто графическая морда. В первый раз - повезло, в этот - нет.
Восстановить из бекапа и васякот.

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

Нет, пусть сначала хомяки🐹 протестуют, потом программисты допилят и ещё раз испытают на хомяках🐹.

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

вряд ли альфа версию софта форсила бы одна немелкая IT-контора ;)

Она типа форсит, но на том, что непосредственно продает и за что придется отвечать никакого btrfs нет.

Im_not_a_robot ★★★★★
()

раздел sda6 есть, его можно подмонтировать с ключом "-t btrfs", файлы читаются, GParted показвает всю информацию о разделе.

Надо тебе было обрадоваться и переносить файлы на другой раздел.

Но вот blkid, например, ничего о нём не показывает, как будто нет его!

Не знаю что делает blkid, но скорее всего он просто ищет суперблок который он не может найти.
Предположение: btrfs цела, но пропал суперблок, пропажа которого обходится через опцию через принудительное указание файловой системы при мантировании или какойто эвристикой в Gparted.

Теперь вопрос: как это могло произойти?
а. Указатель на местонахождение суперблока или сам суперблок после редактирования таблицы разделов оказался за пределами раздела.
б. Указатель на суперблок или сам суперблок повреждены или некоректно откоректированы или перенесены.

Я всё, дальше думай сам, возможно потренбуется ручной анализ дампов файловой системы.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)

Товарищи, очень хочется понять хоть какие-то примерные сроки выполнения. Есть ли какие-нибудь способы это узнать? Ибо если это два-три дня, то я ещё подожду. Но если неделя и больше - то ну нафиг.

Strannik-j ★★
() автор топика

- как долго может идти этот процесс на 300 Gb ssd?

Проверь сколько этот процесс занимает ОЗУ, если 100% плюс полностью своп то сколь угодно долго, хоть до рождения твоих правнуков.

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

~4,6Gb из 20. Проц грузит под 70-100%, но только одно ядро. В целом работе не мешает. Если, конечно, работу из-под systemrescue можно так назвать)

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

К диску на чтение отдельно и на запись отдельно много обращается?
Посмотри в смарте сколько ресурса осталось и с какой скоростью он расходуется.

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

экономия ресурса

Спуфинг, перелогинься.

anonymous
()
Ответ на: комментарий от torvn77
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       12259
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       107
177 Wear_Leveling_Count     0x0013   092   092   000    Pre-fail  Always       -       145
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   067   049   000    Old_age   Always       -       33
195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   082   082   000    Old_age   Always       -       18149
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       59
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       178305428211

SMART Error Log Version: 1
No Errors Logged
Strannik-j ★★
() автор топика
Ответ на: комментарий от Strannik-j

Я не настолько разбираюсь чтобы тебе помочь.
Могу сказать только две вещи:
1. Проанализируй строки с Pre-fail и узнай что значит Old_age, вполне возможно тебе пора подумывать о новом накопителе.
2. Посмотри объём ввода/вывода в менеджере процессов.

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

Всё, я его прибил)
Я глянул, он вчера работал на 742661894144 секторе.
Сегодня - 742940798976.
А всего их там 21582941310976.
Короче, проще всё залить на какой-нибудь другой хард, а потом обратно, тем более, что разделы по-прежнему монтируются.
Но сначала попробую другие способы.

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

Все нормально, кроме 199 и 235 параметров.
Отработал всего ничего.

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

вряд ли альфа версию софта форсила бы одна немелкая IT-контора ;)

Red Hat её не форсит, она ей троллит ;) Как уже отметил товарищ выше, в платном софте с поддержкой никакой btrfs не было, нет и не будет. Тем более btrfs ненужна на фоне openzfs, которая давно готова к продакшену и с каждым патчем всё лучше и лучше.

Psychosis
()
Последнее исправление: Psychosis (всего исправлений: 1)

суть в том, что раздел sda6 есть, его можно подмонтировать с ключом «-t btrfs», файлы читаются, GParted показвает всю информацию о разделе. Но вот blkid, например, ничего о нём не показывает, как будто нет его!

Это означает, что проблема где угодно, но не в ФС.

btrfsck –repair –init-extent-tree

Ну и нахера, спрашивается?

Жди. Можешь сразу начать раскапывать бэкапы, потому что --init-extent-tree это отладочная операция, и в мане об этом крупными буквами английским по белому написано, что после её выполнения от ФС не факт что что-то останется.

       --init-extent-tree
           build the extent tree from scratch

               Note
               Do not use unless you know what you’re doing.
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

По теме - скорее всего был повреждён первый superblock, который ищет и не находит blkid, зато сам модуль btrfs умеет выходить из такой ситуации.

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

P.S Печально что в тред пришли люди, знание которых о btrfs остановилось где-то в 2005-2010 году (якобы btrfs находится в состоянии альфа-тестирования). Это нормальная и хорошая фс, которая не раз выручала меня.

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

якобы btrfs находится в состоянии альфа-тестирования). Это нормальная и хорошая фс

И тем не менее только по этой системе регулярно всплывают темы «помогите спасите btrfs посыпалась что делать». Интересно было бы увидеть статистику, в скольких процентах таких тем удалось все починить.

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

Я полагаю что ТС при изменении таблицы разделов отъел у btrfs один или несколько первых блоков, то что BTRFS это смогла пережить и хорть как-то работать разве не есть хорошее свидетельство её надёжности и совершенства?

torvn77 ★★★★★
()
Ответ на: комментарий от Strannik-j

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

Может сначала данные спасти, а потом дальше играться?

IIIypuk ★★★★
()

решил я его снести и расширить корневой на него. Я подобное уже делал, но из консоли, а тут решил попробовать GParted. Зря.

Прям в системе на смонтированном разделе? GParted из SystemRescueCD, вроде, справляется с расширением btrfs.

И почему просто не добавить раздел btrfs device add ?

Спрашиваю для себя, чтоб не повторять ошибок.

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

это хорошая ФС для профессоров в этой теме. у обычных юзверей регулярно возникают втф случаи при ее использовании (обычное «фс поломалась, что делать!?» в учет не беру, естественно)

Virtuos86 ★★★★★
()

Потеря BTRFS

@intelfx и ещё кто-то регулярно топят что Btrfs стабильна и все её пользователи, кто теряет данные, криворуки. Смешно.

Я топил, топлю и буду топить за ZFS, а так как в Linux упоролись запрещать non-GPL, получается что я топлю против Linux.

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

Fixed

Do not use Btrfs unless you know what you’re doing

Два виски этому анониму! Запишите на счёт сектантов, они должны платить.

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

Видно, что ты не в теме. Присмотрись почему именно сломалась фс - потому что юзер выполнил команду, которая не требовалась. И вообще, фс читалась до того, как была выполнена команда.

К сожалению, количество комментариев на лоре у одной половины пользователей обратно пропорционально компетенции в вопросе.

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

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

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

Ты пойми, что для статистики не важны эти нюансы. Если по какой-то системе/программе возникает много тем с вопросами «как починить», значит этой системой либо пользуется значительно больше людей, чем другими, либо она часто ломается. Очевидно, что в случае btrfs это второй вариант.

Лично для меня, файловая система – это вещь, о которой хочется просто забыть. Создать/смонтировать с дефолтными опциями и вообще о ней не думать. Если нужно помнить 100500 опций, читать каждый ченджлог, досконально разбираться в ее внутренностях, просто для того, чтобы она работала, то эта система, мягко говоря, еще не готова для массового применения.

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

Если нужно помнить 100500 опций, читать каждый ченджлог, досконально разбираться в ее внутренностях,

Как хорошо под это описание подпадает ext3/4 !!!

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

Я топил, топлю и буду топить за ZFS

ZFS стабильна! У меня есть пулы, которые были созданы почти десять лет назад, пережили кучу дисков (mirror рулит и педалит!). Сколько в среднем живёт Btrfs, до полугода?

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

Если нужно помнить 100500 опций, читать каждый ченджлог, досконально разбираться в ее внутренностях, просто для того, чтобы она работала, то эта система, мягко говоря, еще не готова для массового применения.

Похоже на ext4. Горы обратно несовместимых параметров, необходимость следить за изменениями в mke2fs.conf, чтобы внезапно не обосраться с невозможностью смонтировать на ядре предыдущей версии. В Btrfs полторы опции за всё время, и о них можно с чистой совестью не знать. Знать что-то о внутренностях Btrfs тоже за все годы не понадобилось, а для ext4, помню, думал над inode size/ratio и ещё какими-то крутилками.

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

Сколько в среднем живёт Btrfs, до полугода?

Не покупайте SSD из подвала, и будет работать отлично годами.

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

Ты пойми, что для статистики не важны эти нюансы. Если по какой-то системе/программе возникает много тем с вопросами «как починить», значит этой системой либо пользуется значительно больше людей, чем другими, либо она часто ломается.

Количество сообщений на lor про поломку Btrfs никак не говорит о масштабе её использования и доле поломок. Она может ломаться в 10% и в 1% случаев, кто-то может писать на один форум, кто-то на другой. Ты не хочешь посудить о качестве fs по количеству сообщений в bugzilla конкретной фс? По статистике у каждого, кто написал сообщение в bugzilla, сломалась фс)

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

Лично для меня, файловая система – это вещь, о которой хочется просто забыть.

Лично для тебя btrfs - это повод отметиться в теме, набить скор, написать дезинформацию про btrfs, что она всегда ломается, или что

нужно помнить 100500 опций, читать каждый ченджлог, досконально разбираться в ее внутренностях, просто для того, чтобы она работала, то эта система, мягко говоря, еще не готова для массового применения.

Что вообще 4.2. На самом деле у btrfs меньше опций, чем например у ext4, опции монтирования по умолчанию указывать не нужно. С заданными при форматировании опциями fs продолжает работать, ничего менять периодически не нужно. Отдельного от ядра changelog у btrfs нет.

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

Моя живёт с 2018 года, пережила смену дисков. В среднем она живёт полгода в сознании флудеров на lor - им нужна возможность написать сообщение.

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

Сколько в среднем живёт Btrfs, до полугода?

Моя живёт несколько годов.

torvn77 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.