Вопрос или проблема
Я не могу монтировать ни один CD или DVD в своем приводе. НО у меня есть Windows 10 в Dual Boot, и я могу без проблем читать любой CD/DVD в Windows.
На этом изображении “DVD-RW backup” — это метка DVD-RW.
Сообщение на английском языке: Не удалось монтировать DVD-RW backup (или “Не удается монтировать”, или “Невозможно монтировать” и т.д.).
- ОС: Debian GNU/Linux trixie/sid
- Ядро: 6.12.12-amd64 x86_64
- Устройство: ATAPI iHAS122 W
Ошибки:
$ sudo mount /dev/sr0 /mnt
mount: /mnt: fsconfig system call failed: /dev/sr0: Can't open blockdev.
dmesg(1) may have more information after failed mount system call.
$ sudo mount /dev/sr0/pktcdvd0 /mnt
mount: /mnt: fsconfig system call failed: /dev/sr0/pktcdvd0: Can't lookup blockdev.
dmesg(1) may have more information after failed mount system call.
Вот вывод некоторых команд:
$ sudo blkid /dev/sr0
/dev/sr0: UUID="67587414000011bf" LABEL="DVD-RW backup" BLOCK_SIZE="2048" TYPE="udf"
$ lsblk
sr0 11:0 1 2,3G 0 rom
└─pktcdvd0 252:0 1 2,3G 0 disk
$ lsdvd
libdvdread: DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread: DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
Can't open main ifo!
$ sudo dmesg | grep sr0
[ 5.239165] sr 1:0:0:0: [sr0] scsi3-mmc drive: 94x/62x writer dvd-ram cd/rw xa/form2 cdda tray
[ 5.297610] sr 1:0:0:0: Attached scsi CD-ROM sr0
[ 90.583896] block (null): writer mapped to sr0
$ cdrwtool -i -d /dev/sr0
using device /dev/sr0
256KB internal buffer
setting write speed to 12x
DISC INFO:
erasable : Yes
border = 3
Disc status = 2
number of first track = 1
number of sessions = 1
number of tracks = 1
status of last track = 1
uru = 1
did_v = 0
dbc_v = 0
disc type = 0
disc_id = 0
lead_in = 00:00:00 (0)
lead_out = 00:00:00 (0)
OPC entries = 0
TRACK INFO:
Track 1
track_number = 1
session_number = 1
damage = 0
copy = 0
track_mode = 4
Rt = 0
blank = 0
packet = 1
fp = 1
data_mode = 1
lra_v = 0
nwa_v = 0
track_start = 0
next_writable = 0
last_recorded = 0
free_blocks = 0
packet_size = 16
track_size = 1227456 (2454912KB)
can't unlock door
Вот вывод от udevram:
$ udevadm info -n /dev/sr0
P: /devices/pci0000:00/0000:00:02.1/0000:04:00.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0
M: sr0
R: 0
J: b11:0
U: block
T: disk
D: b 11:0
N: sr0
L: -100
S: disk/by-label/DVD-RW\x20backup
S: disk/by-uuid/67587414000011bf
S: disk/by-id/ata-ATAPI_iHAS122_W_3522540_207325501228
S: disk/by-path/pci-0000:04:00.1-ata-2.0
S: disk/by-path/pci-0000:04:00.1-ata-2
S: disk/by-diskseq/8
S: cdrom
Q: 8
E: DEVPATH=/devices/pci0000:00/0000:00:02.1/0000:04:00.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0
E: DEVNAME=/dev/sr0
E: DEVTYPE=disk
E: DISKSEQ=8
E: MAJOR=11
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=5297510
E: ID_CDROM=1
E: SYSTEMD_MOUNT_DEVICE_BOUND=1
E: ID_CDROM_CD_R=1
E: ID_CDROM_CD_RW=1
E: ID_CDROM_DVD=1
P: /devices/pci0000:00/0000:00:02.1/0000:04:00.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0
M: sr0
R: 0
J: b11:0
U: block
T: disk
D: b 11:0
N: sr0
L: -100
S: disk/by-label/DVD-RW\x20backup
S: disk/by-uuid/67587414000011bf
S: disk/by-id/ata-ATAPI_iHAS122_W_3522540_207325501228
S: disk/by-path/pci-0000:04:00.1-ata-2.0
S: disk/by-path/pci-0000:04:00.1-ata-2
S: disk/by-diskseq/8
S: cdrom
Q: 8
E: DEVPATH=/devices/pci0000:00/0000:00:02.1/0000:04:00.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0
E: DEVNAME=/dev/sr0
E: DEVTYPE=disk
E: DISKSEQ=8
E: MAJOR=11
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=5297510
E: ID_CDROM=1
E: SYSTEMD_MOUNT_DEVICE_BOUND=1
E: ID_CDROM_CD_R=1
E: ID_CDROM_CD_RW=1
E: ID_CDROM_DVD=1
E: ID_CDROM_DVD_R=1
E: ID_CDROM_DVD_RAM=1
E: ID_CDROM_MRW=1
E: ID_CDROM_MRW_W=1
E: ID_CDROM_DVD_PLUS_R_DL=1
E: ID_CDROM_DVD_PLUS_R=1
E: ID_CDROM_DVD_PLUS_RW=1
E: ID_CDROM_DVD_R_DL_JR=1
E: ID_CDROM_DVD_R_DL_SEQ=1
E: ID_CDROM_DVD_RW_SEQ=1
E: ID_CDROM_DVD_RW_RO=1
E: ID_CDROM_CD=1
E: ID_CDROM_RW_REMOVABLE=1
E: ID_CDROM_DVD_RW=1
E: ID_CDROM_DVD_R_DL=1
E: ID_CDROM_MEDIA=1
E: ID_CDROM_MEDIA_DVD_RW_RO=1
E: ID_CDROM_MEDIA_DVD_RW=1
E: ID_CDROM_MEDIA_STATE=complete
E: ID_CDROM_MEDIA_SESSION_COUNT=1
E: ID_CDROM_MEDIA_TRACK_COUNT=1
E: ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
E: ID_ATA=1
E: ID_TYPE=cd
E: ID_BUS=ata
E: ID_MODEL=ATAPI_iHAS122_W
E: ID_MODEL_ENC=ATAPI\x20\x20\x20iHAS122\x20\x20\x20W\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
E: ID_REVISION=PL06
E: ID_SERIAL=ATAPI_iHAS122_W_3522540_207325501228
E: ID_SERIAL_SHORT=3522540_207325501228
E: ID_ATA_FEATURE_SET_PM=1
E: ID_ATA_FEATURE_SET_PM_ENABLED=1
E: ID_ATA_SATA=1
E: ID_ATA_SATA_SIGNAL_RATE_GEN1=1
E: ID_ATA_PERIPHERAL_DEVICE_TYPE=5
E: ID_PATH=pci-0000:04:00.1-ata-2.0
E: ID_PATH_TAG=pci-0000_04_00_1-ata-2_0
E: ID_PATH_ATA_COMPAT=pci-0000:04:00.1-ata-2
E: ID_FS_VOLUME_ID=DVD-RW\x20backup
E: ID_FS_UUID=67587414000011bf
E: ID_FS_UUID_ENC=67587414000011bf
E: ID_FS_VOLUME_SET_ID=67587414000011BF
E: ID_FS_APPLICATION_ID=genisoimage
E: ID_FS_LABEL=DVD-RW_backup
E: ID_FS_LABEL_ENC=DVD-RW\x20backup
E: ID_FS_LOGICAL_VOLUME_ID=DVD-RW\x20backup
E: ID_FS_VERSION=1.02
E: ID_FS_BLOCKSIZE=2048
E: ID_FS_TYPE=udf
E: ID_FS_USAGE=filesystem
E: ID_FOR_SEAT=block-pci-0000_04_00_1-ata-2_0
E: DEVLINKS=/dev/disk/by-label/DVD-RW\x20backup /dev/disk/by-uuid/67587414000011bf /dev/disk/by-id/ata-ATAPI_iHAS122_W_3522540_207325501228 /dev/disk/by-path/pci-0000:04:00.1-ata-2.0 /dev/disk/by-path/pci-0000:>
E: TAGS=:systemd:uaccess:seat:
E: CURRENT_TAGS=:systemd:uaccess:seat:
РЕДАКЦИЯ от 15 февраля 2025 года
Проблема, похоже, связана с RW дисками. Недавно все начало работать снова: я смог прочитать коммерческий CD с курса немецкого языка, фильм, записанный на DVD-R, аудио CD, купленный в магазине, и так далее. Но когда я вставляю CD или DVD-RW, появляется страшный pktcdvd0
.
Я провел тест, я записал ISO на DVD-RW с помощью growisofs. Это сработало, запись прошла без проблем. Однако сразу после записи диск не выбрасывался автоматически, и не удалось прочитать записанный DVD, показывая ту же ошибку, что и раньше. Я не мог прочитать никакие другие носители: аудио CD, курс немецкого и т.д. Команда eject /dev/sr0
не сработала, но кнопка выброса привода всегда работает. Мне пришлось перезагрузить ПК, и тогда я смог прочитать другие носители.
$ sudo cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
Writer pktcdvd0 mapped to sr0:
Settings:
packet size: 0kB
write type: Packet
packet type: Variable
link loss: 0
track mode: 0
block mode: Unknown
Statistics:
packets started: 0
packets ended: 0
written: 0kB
read gather: 0kB
read: 0kB
Misc:
reference count: 2
flags: 0x0
read speed: 0kB/s
write speed: 0kB/s
start offset: 0
mode page offset: 0
Queue state:
bios queued: 0
bios pending: 0
current sector: 0x0
state: i:0 ow:0 rw:0 ww:0 rec:0 fin:0
write congestion marks: off=9000 on=10000
Также, когда вставляется CD/DVD-RW, pktcdvd0
никогда не исчезает (даже после изъятия носителя). Мне нужно перезагрузить ПК, если я хочу снова использовать CD-привод.
В этом примере DVD-RW был уже извлечен:
$ lsblk
sr0 11:0 1 2,3G 0 rom
└─pktcdvd0 252:0 1 2,3G 0 disk
$ sudo pktsetup -s
0 : 252:0 -> 11:0
$ sudo pktsetup -d 252:0
pktsetup: Error: Can't tear down packet device '252:0': Device or resource busy
РЕДАКЦИЯ от 16 февраля 2025 года
Обнаружена та же проблема:
- Форум Linux Mint: Проблемы с DVD+RW, который не выбрасывается или не монтируется
- Linux.org: Невозможно монтировать или извлечь DVD+RW
У вас где-нибудь смонтирован /dev/pktcdvd/pktcdvd0
? Похоже, в приводе есть перезаписываемый DVD-RW носитель, и кто-то или что-то (автоматически?) смонтировал его с использованием интерфейса записи пакетами, который захватил базовое устройство CD/DVD /dev/sr0
и установил на него эксклюзивную блокировку, пока механизм записи пакетами активен. Это также блокирует механизм выброса/извлечения дисков с привода, поскольку вы можете потерять данные, если случайно извлечете диск во время записи системы на него.
Насколько я понимаю, интерфейс записи пакетами — это вроде дополнительной опциональной надстройки, которую можно добавить на обычное CD/DVD устройство, если вам нужно добавлять файлы на файловую систему UDF на CD-RW или DVD-RW носителя.
Пока интерфейс записи пакетами активен, вы должны использовать устройство /dev/pktcdvd/pktcdvd0
для монтирования диска вместо обычного /dev/sr0
.
По вашему выводу lsblk
я вижу, что устройство pktcdvd0
имеет номера major:minor
252:0
, а sr0
имеет 11:0
.
Если /dev/pktcdvd/pktcdvd0
в данный момент не смонтирован и привод DVD не активен (например, “закрытие” диска после размонтирования, так как до размонтирования что-то было записано), вы можете отключить уровень записи пакетами и освободить DVD-привод для обычного использования с помощью:
echo 252:0 | sudo tee /sys/class/pktcdvd/remove
(или просто echo 252:0 > /sys/class/pktcdvd/remove
, если вы уже работаете под root)
После отключения уровня записи пакетами вы должны иметь возможность извлечь диск с помощью eject /dev/sr0
или с помощью физической кнопки выброса на самом приводе.
Если хотите узнать больше, смотрите документацию исходного кода ядра: https://mjmwired.net/kernel/Documentation/cdrom/packet-writing.rst и https://mjmwired.net/kernel/Documentation/ABI/testing/sysfs-class-pktcdvd
Когда был введен USB 2.0 и USB-подключаемые устройства хранения данных стали повсеместными, думаю, система записи пакетами на CD/DVD использовалась очень ограниченно и постепенно забыта. Думаю, она довольно долго находится на минимальном обслуживании, а интерфейс конфигурации ядра довольно долго содержал это замечание о ней:
CONFIG_CDROM_PKTCDVD
Примечание: Этот драйвер устарел и будет удален из ядра в ближайшем будущем!
Если подсистема pktcdvd
собрана как модуль ядра, вы можете отключить ее, добавив файл /etc/modprobe.d/disable-pktcdvd.conf
со следующим содержимым:
install pktcdvd /bin/false
и затем выгружая модуль, если он загружен, с помощью sudo modprobe -r pktcdvd
. Обратите внимание, что если модуль в настоящее время используется, он не выгрузится, поэтому если он находится в “зависшем” состоянии, возможно, потребуется перезагрузка, чтобы избавиться от него.
.
Ответ или решение
Прежде всего, проблема описанная в вашем вопросе, заключается в том, что не удается монтировать CD/DVD носители на системе Debian testing с кодовым именем "trixie/sid". При этом в Windows 10 такая проблема отсутствует, что свидетельствует о потенциальной несовместимости или конфликте настроек в вашей Linux среде. Попробуем разобраться в проблеме более детально, рассматривая теорию, примеры и пути решения.
Теория:
Ваша проблема связана с попытками монтировать CD/DVD носители из-под драйвера pktcdvd
, который используется для пакетной записи на переписываемые носители, такие как CD-RW и DVD-RW. Это, по сути, дополнительный слой, накладываемый на обычное устройство CD/DVD. Поскольку интерфейс пакетной записи берет эксклюзивный контроль над устройством /dev/sr0
, он блокирует возможность использовать его стандартными способами до тех пор, пока это подключение активно.
Проблемы могут возникать, если pktcdvd
активно монтирует носитель, и какой-либо процесс сохраняет контроль над устройством, что может также заблокировать физический механизм извлечения. Из предоставленных данных становится видно, что монтирование идет через pktcdvd0
, которое связано с sr0
.
Примеры:
-
Команды и выводы показателей:
Исходные команды показывают, что система распознает устройство и дает UUID и Label для диска, но затем выдает ошибки, такие как "Can’t open blockdev" или "Can’t lookup blockdev", что указывает на блокировку устройства.
$ sudo mount /dev/sr0 /mnt mount: /mnt: fsconfig system call failed: /dev/sr0: Can't open blockdev.
-
Вывод команд
lsblk
иpktsetup
:Из вывода
lsblk
видно, что вашему устройствуsr0
соответствует подпроцессpktcdvd0
, который перекрывает стандартный доступ:sr0 11:0 1 2,3G 0 rom └─pktcdvd0 252:0 1 2,3G 0 disk
При попытке удалить
pktsetup
, система выдает ошибку, что устройство занято:sudo pktsetup -d 252:0 pktsetup: Error: Can't tear down packet device '252:0': Device or resource busy
-
Дополнительные сообщения от
dmesg
иpktcdvd
интерфейсов:Логи
dmesg
показывают, что устройство распознается в системе, но оно остается заблокированным. Появляется необходимость управлять устройством через пакетную запись.
Практическое применение:
-
Деактивация интерфейса пакетной записи:
Чтобы решить вашу проблему, можно попробовать отключить интерфейс
pktcdvd
, что позволит освободить устройство для стандартного использования. Выполните команду:echo 252:0 | sudo tee /sys/class/pktcdvd/remove
Это позволит освободить
pktcdvd0
, и затем вы сможете извлечь диск стандартной командойeject /dev/sr0
, или просто воспользоваться кнопкой извлечения на устройстве. -
Долгосрочное решение проблемы:
Если вы не планируете использовать пакетную запись, вы можете заблокировать автоматическую загрузку модуля
pktcdvd
, создавая конфигурационный файл:echo "install pktcdvd /bin/false" | sudo tee /etc/modprobe.d/disable-pktcdvd.conf
Это позволит предотвратить автоматическую загрузку соответствующего модуля, и вам не нужно будет беспокоиться о блокировке устройства при стандартной работе.
-
Рассмотрение будущих апгрейдов и обновлений:
В долгосрочной перспективе стоит учитывать, что интерфейс
pktcdvd
помечен как устаревший, и возможно его полное удаление из будущих релизов ядра Linux. Учитывайте это при планировании обновлений вашей системы.
Применяя эти решения, вы сможете более эффективно управлять своими CD/DVD носителями в Debian, избегая конфликтов и недоступности устройств. Если после выполнения предложенных шагов проблема сохраняется, рекомендуется проверить целостность и корректность работы модуля ядра и при необходимости обратиться за консультацией к специалистам в области Linux систем.