Вопрос или проблема
Я пытаюсь выполнить сырой доступ к старому магнитно-оптическому диску в Debian 10 (в Windows проблем нет)
Я ожидал, что Linux добавит диск как /dev/hdn или /dev/sdn, но, похоже, он распознает его как cdrom (/dev/srn). Вот соответствующие строки из dmesg:
[ 22.112062] scsi host33: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0
<Adaptec 29160N Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
[ 37.472036] scsi host36: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0
<Adaptec 29160N Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
[ 38.764112] scsi 36:0:5:0: WORM LMS LD 1200E SCSI 0183 PQ: 0 ANSI: 1
[ 38.780029] scsi target36:0:5: Beginning Domain Validation
[ 38.801822] scsi target36:0:5: Ending Domain Validation
[ 41.134286] sr 36:0:5:0: [sr1] scsi-1 drive
[ 41.134456] sr 36:0:5:0: Attached scsi CD-ROM sr1
[ 41.134516] sr 36:0:5:0: Attached scsi generic sg2 type 4
[ 41.178402] sr 36:0:5:0: [sr1] unsupported sector size 1024.
[ 41.312627] PM: Image not found (code -22)
Когда я пытаюсь прочитать с /dev/sr1, используя dd bs=1024 if=/dev/sr1, я получаю 0 записей; вероятно, потому что /dev/sr1 не принимает размер блока в 1024 байта, хотя я знаю, что именно это использует магнитно-оптический диск.
К слову, команда cat /proc/scsi/scsi дает следующие результаты:
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 2.0
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware SATA CD00 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi36 Channel: 00 Id: 05 Lun: 00
Vendor: LMS Model: LD 1200E SCSI Rev: 0183
Type: WORM ANSI SCSI revision: 01
Есть ли способ заставить Linux создать файл устройства /dev/sdn для него, а не /dev/srn?
Ответ или решение
Создание устройства /dev/srn
для SCSI-магнитооптического накопителя в Debian 10 вместо /dev/sdn
может вызвать некоторые трудности, особенно если вы рассчитываете выполнять операции низкоуровневого чтения с использованием утилиты dd
. В данной статье мы рассмотрим причины такого поведения и возможные способы решения проблемы.
Причины возникновения проблемы
Девайс /dev/srn
идентифицируется как CD-ROM, поскольку система Linux видит ваш SCSI-накопитель как вариант записи (WORM – Write Once Read Many). Это связано со спецификацией SCSI, которая классифицирует устройства, подписанные как WORM, как оптические накопители. В данном случае, модель вашего магнитооптического диска LMS LD 1200E признается системой как устройство типа CD-ROM.
При этом в системе Linux накопители с типом "CD-ROM" представлены через /dev/sr<номер>
, что означает, что операции, подобные чтению, будут ограничены характеристиками, присущими CD-ROM-дискам. Это, возможно, и является причиной, по которой вы не можете выполнить операцию dd
с размером блока 1024 байта, так как устройства типа CD-ROM, как правило, рассчитаны на чтение фиксированного размера блоков, таких как 2048 байт.
Подходы к решению проблемы
1. Проверка параметров устройства
Для начала стоит убедиться, что на уровне драйвера SCSI и в параметрах устройства присутствуют нужные вам настройки. Попробуйте запустить команду:
hdparm -I /dev/sr1
Это может дать полезную информацию о характеристиках устройства читать и записи.
2. Использование параметра blocksize
в dd
Попробуйте использовать другой размер блока. Если устройство действительно возвращает 2048 байт на блок, то команда должна выглядеть так:
dd if=/dev/sr1 of=output_file.img bs=2048
Попробуйте запустить одну из предыдущих команд, прежде чем делать выводы о несовместимости устройства.
3. Изменение конфигурации загрузчика или ядра
В некоторых ситуациях можно попытаться указать ядру Linux, как обрабатывать это устройство. Для этого необходимо узнать параметры SCSI и возможно использовать опции командной строки для загрузчика. Это может быть сделано через GRUB, добавив в параметрах загрузки:
libata.force = [options]
4. Виртуализация или альтернативные решения
Если проблема не решается через стандартное управление устройствами, попробуйте использовать виртуальные машины или инструменты, такие как qemu
, чтобы работать с магнитооптическим диском в качестве образа. Это может позволить вам записать его содержимое и работать с данными без ограничений, присущих физическому интерфейсу.
5. Обратитесь к сообществу
Если указанные методы не дают результата, полезно обратиться за помощью к сообществу Linux. Есть множество форумов и почтовых рассылок, где как новички, так и эксперты могут обменяться знаниями и опытом. Например, такие ресурсы, как LinuxQuestions.org
, могут оказаться полезными.
Заключение
Ваша проблема с идентификацией SCSI-магнитооптического диска как CD-ROM может быть разрешена несколькими способами, начиная от проверки параметров устройства и изменения параметров команд dd
, заканчивая более глубокими модификациями конфигурации ядра. Настоятельно рекомендуется подходить к каждому из решений поэтапно, фиксируя полученные результаты и анализируя их.