맨날 dvd만 굽다가 용량이 작은 data를 구울려고 cd 를 써서 구운적이 있다.
그런데 다 굽고나서 잘되는지 mount를 하려고 하면 error가 뜨더라.
[11월21 15:22] sr 2:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ +0.000016] sr 2:0:0:0: [sr0] tag#0 Sense Key : Illegal Request [current]
[ +0.000012] sr 2:0:0:0: [sr0] tag#0 Add. Sense: Illegal mode for this track
[ +0.000010] sr 2:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 00 d5 5c 00 00 02 00
[ +0.000009] blk_update_request: I/O error, dev sr0, sector 218480
[ +0.010817] sr 2:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ +0.000019] sr 2:0:0:0: [sr0] tag#0 Sense Key : Illegal Request [current]
[ +0.000020] sr 2:0:0:0: [sr0] tag#0 Add. Sense: Illegal mode for this track
[ +0.000013] sr 2:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 00 d5 5d 00 00 01 00
[ +0.000010] blk_update_request: I/O error, dev sr0, sector 218484
[ +0.000012] Buffer I/O error on dev sr0, logical block 54621, async page read
[ +0.365453] ISO 9660 Extensions: Microsoft Joliet Level 3
[ +0.002880] ISO 9660 Extensions: RRIP_1991A
대충 살펴 보니까… /dev/sr0의 218480 sector를 읽을 수 없다고 하는것 같다.
그런데… mount를 해보니 data는 잘 보여서 그냥 쓸 까… 했는데 의심쩍어서 찾아봤더니 이런게 있더라.
Peter (darkcentrino) wrote : |
The Problem is the CD, when you burn the iso to a DVD, everything is fine!
I have found this links:
http://<email address hidden>
http://www.troubleshooters.com/linux/coasterless.htm
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/266951
위에 peter가 cd로 구워서 그런거고, dvd로 구우면 문제없이 잘 된다..!! 라고 알려준다. 실제로 DVD 한장을 낭비해서 구워보니까 error안뜨고 잘 mount 되더라.
그리고 링크 하나를 던져 주는데… 들어가서 확인 해보니까…
NOTE
There are many ways to burn a CD, including applications like xcdroast and gtoaster. Most are good, so use whichever suits your needs. Just remember the basic principles from this section:
-
Burn at the right speed
-
Pad properly (padsize=63s and -pad)
-
Use disk at once (-dao)
-
Unless your burner prevents buffer underflow, do no other work while you’re burning.
cd 구울때 위의 기본 원칙들을 꼭 주의 하란다. ( 난 wodim으로 그냥 아무 옵션없이 구웟음…)
저 친구가 알려준 원칙대로 구워보자.
# cdrecord dev=0,0,0 speed=10 padsize=63s -pad -dao -v -eject /home/myuid/myiso.iso
위에서 바뀌어야 할 부분은 dev , speed, /home/… 요렇게 이다. 난 speed를 그냥 기본으로 하면 알아서 맞춰주는줄 알앗는데 아닌가보다.
dev는 아래의 command로 확이 가능하다.
# cdrecord -scanbus
scsibus2:
2,0,0 200) ‘HL-DT-ST’ ‘BD-RE BP40NS20 ‘ ‘ML01’ Removable CD-ROM
2,1,0 201) *
2,2,0 202) *
…
speed는 2개중 낮은 값으로 해야되는데… 뭐냐면 cd writer기와 cdrom에 적혀있는 1x-52x 이런 값중 낮은값을 선택해서 해야한단다. 반드시…!
확인을 해보면…
# sysctl dev.cdrom.info
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info =
dev.cdrom.info = drive name: sr0
dev.cdrom.info = drive speed: 24
dev.cdrom.info = drive # of slots: 1
위 처럼 sysctl을 이용해서 drive의 speed를 확인해도 되고 직접 sysfs를 뒤져봐도 되고 proc을 뒤져봐도 되고…등등 여러가지 방법이 있다.
cdrom의 speed는 cdrom 위에 1x-52x 이렇게 명시되어 있을 것이다. 저뜻은 1부터 52배속까지 원하는걸로 쓸 수 있다는 뜻 같다.
자 이제 다 됐으니… 구워보자.
# cdrecord dev=2,0,0 speed=24 padsize=10 -pad -dao -v -eject ~/iso/MegaRaid_Software.iso
TOC Type: 1 = CD-ROM
wodim: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.
scsidev: ‘2,0,0’
scsibus: 2 target: 0 lun: 0
WARNING: the deprecated pseudo SCSI syntax found as device specification.
Support for that may cease in the future versions of wodim. For now,
the device will be mapped to a block device file where possible.
Run “wodim –devices” for details.
Linux sg driver version: 3.5.36
Wodim version: 1.1.11
SCSI buffer size: 64512
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : ‘HL-DT-ST’
…
… wodim을 불러오네 … wodim으로 구워서 잘못됏다고 생각했는데 그냥 사용자가(내가..)잘못 쓴거였음.
암턴 다시 mount를 해보자…
# sudo mount /dev/sr0 /mnt/cdrom/
# dmesg -wH
…
[11월21 16:20] ISO 9660 Extensions: Microsoft Joliet Level 3
[ +0.145748] ISO 9660 Extensions: RRIP_1991A
잘된다!!