LINUX.ORG.RU

Загрузка системы, fsck

 ,


0

1

В старом SSD Плексторе PX-64M5S появились бэды (стабильно обнаруживается несколько бэдов). OS - Debian 11 stable. Во время загрузки, предлагается проверить диск с помощью fsck: https://i.ibb.co/fHnNXNS/P-20240614-110356-HDR.jpg

Проверкa fsck на последнем из пунктов тормозится на час, после чего я проверку прервал:

root@komp:/home/~# sudo fsck -y /dev/sda2
fsck from util-linux 2.36.1
e2fsck 1.46.2 (28-Feb-2021)
222 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Inode 523398 extent tree (at level 1) could be narrower.  Optimize? yes

Inode 531653 extent tree (at level 1) could be narrower.  Optimize? yes

Inode 532267 extent tree (at level 2) could be narrower.  Optimize? yes

Inode 546467 extent tree (at level 2) could be narrower.  Optimize? yes

Error reading block 2098650 (Ошибка ввода/вывода) while getting next inode from scan.  Ignore error? yes

Force rewrite? yes

Посоветуйте, пожалуйста, как попробовать загрузить эту систему.


Не надо его запускать, этими попытками ты только уменьшаешь шанс того, что с него удастся спасти данные.

Загружайся с другого диска, с этого снимай образ (программа ddrescue). Дальше образ клонируй (чтоб был оригинал который ты не трогаешь и был второй файл-клон) и на клоне запускаешь fsck, затем можешь пытаться прочитать оттуда ценные данные, а диск после этого уничтожить (в мусорку нельзя - оттуда могут вытащить и украсть данные которые ещё уцелели).

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

Загружайся с другого диска, с этого снимай образ (программа ddrescue).

Лучше с LiveCD сделать dd if=диск of=disc.iso conv=noerror && sync && sleep 5 && sync, затем подключаешь другой диск и делаешь dd if=disc.iso of=другой_диск conv=noerror && sync && sleep 5 && sync

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

а диск после этого уничтожить

Лучше этому диску сделать dd if=/dev/zero of=диск conv=noerror && sync && sleep 5 && sync.

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

Не знаю, имеет ли это значение, но клонировать раздел я попытался сразу с помощью Clonezilla, которая сделать это не смогла и предложила fsck.

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

Не знаю, имеет ли это значение, но клонировать раздел я попытался сразу с помощью Clonezilla, которая сделать это не смогла и предложила fsck.

Делай по моей инструкции.

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

На другой диск делать dd не надо, надо делать образу fsck а потом смонтировать его (образ) и забирать с него файлы.

dd /dev/zero не заменяет уничтожение, особенно если ссд уже сдох и запись плохо работает или не работает.

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

Ну вот, клонируй не ей а ddrescue, или dd conv=noerror про который выше написали (только там ещё про другой диск пишут - это уже не надо).

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

только там ещё про другой диск пишут - это уже не надо

Это было как данные со старого диска на новый перенести. Ещё можно и даже лучше сделать mkdir -p /mnt/iso && mount -o loop disc.iso /mnt/iso, затем копировать файлы из директории /mnt/iso, затем сделать umount /mnt/iso.

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

Ещё можно и даже лучше сделать

Я про то же. Использовать битый образ не надо, даже после fsck. Только забрать с него файлы.

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

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

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

Спасибо, но что делать после клонирования чтобы именно загрузить эту систему?

Лучше не грузить. Достань нужные файлы и скинь их куда-нибудь. Потом на новый диск установишь систему.

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

firkax, anonymous, пользоваться битой системой я не собираюсь, а загрузить её хочу чтобы достать сессию сохранённую приложением Firefox Tab session manager. Насколько мне известно, Tab session manager не хранит свои сессии в файле, который легко скопировать из незагружаемой системы в другую. Плюс, некоторые настройки системы хочу скопировать. Ничего важного.

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

Как я понял, для Firefox и Linux локация такая:

[root directory]\storage\default\moz-extension+++3637e901–44a0–4847-ac09–3cfcf8af67b1\idb\1782160246ssensosi.sqlite

Где [root directory] - папка профиля в Firefox (указана в about:profiles)

https://medium.com/@strang3quark/migrating-tab-session-manager-data-to-a-new-...

Однако, не факт, что старая версия Tab session manager, которая стоит в битой системе будет совместима с какой-то другой версией. Вообще, с восстановлением сессий в Tab session manager у пользователей давно были проблемы и много вопросов осталось без ответов. Трудно сказать, насколько легко восстановить сессии из этого файла, если возможно.

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

некоторые настройки системы хочу скопировать

Скопируй файлы из каталога /home/имя_пользователя из ISO образа в каталог /home/имя_пользователя в новой системе.

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

sync && sleep 5 && sync

Это очистка всех кэшей и буферов, чтобы точно знать, что ФС можно отмонтировать, а диск – доставать.

sleep 5 && sync, чтобы точно быть увереным, что всё очистилось.

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

Я это и пишу - набор юного ОКР-щика.

Диск после dd не надо отмонтировать, а dd не трогает дисковый кэш. Тем более бессмысленно заклинание «sync;sleep;sync»

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

Диск после dd не надо отмонтировать

Ох, да, извините.

dd не трогает дисковый кэш

man dd | grep sync – зачем нужны эти опции?

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

Переформулирую: при отпускании терминала dd данные уже на устройстве, дополнительно делать манипуляции с дисковым кэшем не надо.

man dd | grep sync – зачем нужны эти опции?

В мане указано, для чего :)

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

man dd | grep sync – зачем нужны эти опции?

В мане указано, для чего :)

при отпускании терминала dd данные уже на устройстве

fdatasync - физически записать данные выходного файла перед завершением

fsync - аналогично, но еще и писать метаданные

dsync - использовать синхронизированный ввод-вывод для данных

sync - аналогично, но и для метаданных

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

физически записать данные выходного файла перед завершением

Есть отличие файла на fs от блочного устройства.

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

не знаю, я когда пишу образы дистров на флешку, dd проходит, потом когда sync делаю, приходится ещё какое-то время ждать.

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

fsync - аналогично, но еще и писать метаданные

Прекращаем срач!!! Пишем через dd с параметром conv=fsync, на всякий случай для спокойства потом делаем sync, а для полного - sync && sleep 5 && sync.

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

только что проверил, записал образ через dd и сразу выдернул флешку без sync — загрузилось нормально.
Но ChatGPT говорит, что sync всё же рекомендуется делать после этого.

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

Зачем?

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

это только для IDE

с чего ты взял?

для SATA нужен hdparm -Y /dev/sdX

-Y вообще про другое. это парковка головок. её делать необязательно, оно само паркуется.

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

Для полного спокойствия обычно следуют официальной инструкции.

As a simple rescue method, call dd as shown in the following example: the operand ‘conv=noerror,sync’ is used to continue after read errors and to pad out bad reads with NULs, while ‘iflag=fullblock’ caters for short reads (which traditionally never occur on flash or similar devices):

Хотя бы читаемые данные в IMG-файле будут на своих местах. А, если только ″conv=noerror″, то при ошибке чтения в выходной файл будет записано 0 байт, последующие данные будут сдвинуты, ФС не восстановить.

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

Вы ещё спросите, зачем ″conv=noerror″ в случае ″dd if=disc.iso of=другой_диск″. Типа снимали образ битого диска, но файл записывали на другой битый диск :)

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

ChatGPT говорит делать sync после записи в файл на ФС, чтобы её можно было отмонитровать? Исходный вопрос ведь был про команду:

dd if=диск of=disc.iso conv=noerror && sync && sleep 5 && sync
которая пишет в файл на смонированой ФС.

Давайте ещё добавим парочку

blockdev --flushbufs

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

ChatGPT говорит делать sync после записи в файл на ФС, чтобы её можно было отмонитровать?

я его спрашивал: «нужно ли делать sync после записи образа на блочное устройство с помощью dd?»

blockdev --flushbufs

это то же самое, что и hdparm -F?

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

Спасибо. Копирование каталога /home/имя_пользователя/.mozilla помогло.

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

Сложно сказать. blockdev просто вызывает ioctl BLKFLSBUF, и драйвер в ядре отправляет нужную команду накопителю, или ничего не отправляет. А hdparm сам отправялет команды накопителю, но, отпять же через ядро/драйвер...

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

это только для IDE

для SATA нужен hdparm -Y /dev/sdX

Это ChatGPT сказал, когда я попросил его объяснить, что это делает.

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

Да кто такой этот ваш Чат Жпт? Дядя ваш - Чат Жпт? Родственник ваш - Чат Жпт?

Криокамера протекает?

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

Ну вы сильно исказили оригинал. И, главное, кем заменён «ЧатЖпт» в последний момент? :)

mky ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.