Поврежденные CD/DVD диски

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Поврежденные CD/DVD диски

Сообщение TuLiss »

В общем тут вышел небольшой казус =)

Всю жизнь копирую без заморочек поврежденные диски в linux. Иногда в linux прочитывается больше информаци , чем в windows=)
дисты slackware/gentoo

А тут человек сидит по FC и слышу от него, что он не может скопировать поврежденный диск, мол linux не умеет обрабатывать bad block на CD ???

Зависоны при копировании с "плохого" диска...
Хотелось бы получить у сообщества информацию по одной очень интересующей меня вещи.

Вот смотрите. Есть у меня "плохой" CD/DVD. Я хочу с него скопировать файлы в двух разных ОС: GNU/Linux и MS Windows.



Монтируем диск в GNU/Linux (ну или он сам монтируется теми же утилитами из Gnome, например) и начинаем любым способом копировать файлы. Файлы замечательно копируются до тех пор, пока процесс не доедет до "плохого" сектора на диске, где процесс благополучно замирает, замирает, замирает... После часа ожидания нам это надоедает и мы хотим прекратить процесс, однако видим что процесс обычными кнопко-мышочными действиями не убивается, иксовыми (xkill) убивается, но коряво (только окно убивается, сам процесс остаётся), самыми мощными (kill -SIGKILL pid) тоже не убивается.
Нам всё это надоедает и мы хотим вытащить диск уже, но и это нам линукс не разрешает, ведь диск примонтирован. Отмонтировать нельзя, ибо диск занят процессом. Единственный выход - перезагрузка.

Монтируем диск в MS Windows. Ситуация аналогичная с тем отличием, что в Windows можно вытащить диск. После вытаскивания диска все занятые процессы убиваются и мы получаем вновь работоспособную систему.

Мне хотелось бы узнать можно ли что-то сделать с ситуацией в Linux, какая часть системы (ядра) плохо сделана, что такая вот ситуация получается. Почему нельзя убить процесс? Почему идеологически Linux не разрешает вытащить диск, не отмонтировав его? (подозреваю что для того, чтобы не потерять инфу, которая может лежать в буфере).

Ну и вообще, ваши мнения, господа...


оригинал тут

Так вот вопрос. Как лучше скопировать инфу с битого диска под linux?
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Поврежденные CD/DVD диски

Сообщение elide »

есть подозрение, что это приводоспецифично.
некоторые приводы сразу (ну или очень быстро) возвращают ошибку чтения. тогда банальный dd conv=noerror спасает всех.
если же привод не сообщает об ошибке, а до победного конца пытается-таки прочитать этот сектор, что ничего сделать нельзя. так как процесс заблокированный на I/O wait является uninterruptable, то убить его нельзя.
вот как-то так. у меня во всяком случае, все нормально копируется. но я знаю многих с такими проблемами... сомневаюсь, что тут дело в ядре.
слава роботам!
Спасибо сказали:
Аватара пользователя
Jinn
Сообщения: 698
Статус: Интересующийся бывалый прохожий

Re: Поврежденные CD/DVD диски

Сообщение Jinn »

некоторые приводы сразу (ну или очень быстро) возвращают ошибку чтения. тогда банальный dd conv=noerror спасает всех.
если же привод не сообщает об ошибке, а до победного конца пытается-таки прочитать этот сектор, что ничего сделать нельзя. так как процесс заблокированный на I/O wait является uninterruptable, то убить его нельзя.

Но можно попробовать и dd_rescue (проживал на www.garloff.de/kurt/ddrescue/), который судя по документации специально для таких случаев предназначенный.
Don't trouble troubles until troubles trouble you!
Спасибо сказали:
gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

Re: Поврежденные CD/DVD диски

Сообщение gtlinuxman »

Есть 2 способа победить сидюк на лине
1.

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

umount -l /dev/cdrom

2.

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

sysctl -w dev.cdrom.lock=0

Делать надо, кажется каждый раз при загрузке модуля cdrom.o (если он жестко вкомпилен -- то при старте системы).
В результате, когда сидюк начинает "парить мозги" просто нажимаем на кнопочку eject -- и все. Правда, размонтировать все равно надо будет, но никакого "device is busy" больше не будет. Опробовано на kernel 2.6.12
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали: