- 1.19 Linux支援Microsoft的Joliet档案系统吗?
-
-
- 答案:
-
Microsoft 制定了一种叫 Joliet 的ISO CD-ROM档案系统延伸格式。 它允许使用 16-bit UNICODE 编码的长档名。
从 2.0.34 版核心起,Linux 核心已支援 Microsoft Joliet 档案系统格式。您必须在核心中启用它。
如果您要用您使用的语言(native language)正确地显示在 Joliet CD-ROM 上的档名,您也需要在核心中支援相应的 NLS ISO8859 字元集。
(译注: 中文的 cp950 还没放进核心中; 请到 http://www.cis.nctu.edu.tw/~is84086/Project/kernel_cp950/ 去抓取修补档)
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 2.为什麽我不能看到Windows CD-ROM的长档名?
-
- 答案:
- 如果您有一片 CD-ROM,上面有 Windows 可看到,但 Linux 看不到的长档名,那麽这片光碟可能是使用 Microsoft 专属的 Joliet 档案系统格式。 请看下一个问题。
-
- 3.哪儿找得到CD-ROM API的文件资料?
-
-
- 答案:
-
如果您想写自己的应用程式,诸如CD唱片播放程式等,您必须懂得Linux提供的应用程式介面(application programming interface,API)
原本CD-ROM核心驱动程式都是用自定的ioctl以支援这类机器的功能。 像 /usr/include/linux/sbpcd.h 这样的标头档就描述了这些。 由於很多驱动程式都是由别的驱动程式发展而来,介面虽不完全相同,但类似之处颇多。
近来,由 David van Leeuwen( david@tm.tno.nl) 发起,建立一组标准化的CD-ROM 共通 API,将共通程式码放一起,确保所有驱动程式都同样的运作。。 这文件在 /usr/src/linux/Documentation/cdrom/cdrom-standard.tex。已有几个核心驱动程式支援它了。 到了 2.0 版核心,所有 CD-ROM 驱动程式都合乎这组 API。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 4.在 CD 上有隐藏档,我没办法读...
-
- 答案:
- 有些 CD 的一些档案有设定隐藏位元。 这些档案正常状态是看不到的。 不过如果您挂上时用了 "unhide" 选项,那麽应该就可以读取了。(这个选项似乎没有文件记载过)
-
- 5.装好 Linux 後,我的 CD-ROM 不能用了
-
-
- 答案:
-
最常见的症状是先用 Linux 安装时,Linux 承认您的 CD-ROM。 但装完後,从软碟或硬碟开机却又不能用它了。
最大的可能就是多数 Linux 套件中,装在硬碟的核心不一定就是和安装片用的一样。 您选了支援您设备的安装片,它却给您在硬碟上装一个没有支援 CD-ROM 的 "通用版"核心。 您可以照第四章所说的 "问题与解决" 去做。 (从检查 /proc/devices 开始)
解法是重编译核心,确定您需要的 CD-ROM 驱动程式及其它需要的部份(如 SCSI 卡, ISO-9660 档案系统)都编进去了。 如果您不知道怎麽做,看 Kernel HOWTO
如果您安装时用了命令列参数(如"hdc=cdrom")您要把它加进开机载入程式的设定档中(通常是 /etc/lilo.conf)
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 6.我如何测试我的 CD-ROM 是几倍速的呢?
-
-
- 答案:
-
有一个办法。 底下测试它要花多久时间来读取 1500K 的资料: % time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500 1500+0 records in 1500+0 records out real 5.24 user 0.03 sys 5.07 正常的单倍速 CD-ROM 每秒传输率为 150KB,所以约要 10 秒钟。 二倍速约要 5 秒钟,四倍速的约 2.5 秒钟等等...
上面里 "real" 时间也许是最好的值 -- 在上面情形指出它是二倍速机器。 您可以增加资料量得出更准确的值。 (如果您担心受快取影响的话。)您也许应该多测几次,求平均值。
我也写了小的 C 程式可以测定并回报 CD-ROM 的资料传输率; 如果您要的话我可以给您。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 7.我如何读懂 IDE CD 的核心错误讯息?
-
-
- 8.我收到 ``/cdrom: Permission denied'' 错误
-
- 答案:
- 有些 CD 有档案权限,仅允许 root 读取它。 这是 CD-ROM 业者犯的错误,而且真的造成不方便。 更常见发生的是有些档案或目录被设成并非任何人可读。有人已经对核心做了修补,解决这样的问题。
-
- 9.多片装 CD-ROM 在 Linux 下能用吗 ?
-
-
- 答案:
-
好几位使用者已报告 SCSI CD-ROM 多片机种运作顺利。 您也许要打开`` Probe all LUNs on each SCSI device'' 的核心选项。 (如果您的 SCSI CD 驱动程式已知它是多片式 CD-ROM,这步就可以省了。 详见 /usr/src/linux/drivers/scsi.c)
至少有一位使用者发现他也要加大驱动程式中的 SCSI 超时等待值(timeout value)。这情况的症状是在第一次挂上 CD-ROM 时出现像 "wrong fs type,bad option,bad superblock on /dev/sr5,or too many mounted file systems" 这样的讯息,而第二次马上就成功。 要这麽作的话,修改 /usr/src/linux/drivers/scsi/sr_ioctl.c 的开头处 IOCTL_TIMEOUT 值,并重新编译核心。 据传在 NEC Multispin 4Xc 上把预设值由 3000 改成 10000 就能工作得很好。
为了让所有的片槽都能存取,可能需要建立额外的区块设备档。对每一个逻辑设备(LUN)都要有一个设备档,所以一个七片换片机需要 /dev/sr0 到 /dev/sr6(如果您还有别的 SCSI CDROM,那还要更多)。 要建立区块设备档,以 root 身份执行 mknod /dev/sr? b 11 ?,其中把 ? 以设备号码取代。
Nakamichi MBR-7 的七片装,NEC Multispin 4Xc 及先锋牌的 12 片装已确定能用。
EIDE/ATAPI 的多片机种也能使用。 核心已对一些机器提供了 CDROM_SELECT_DISC 这个 ioctl 的支援。 IDECD 驱动程式的文件档包含了一个原始码可做写换片的程式之参考。或者您也可以找像早先提到最新版的 eject 程式。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 10.我有一片无法挂上的``特殊''片子
-
-
- 答案:
-
这片``特殊''片子看来像是 XA 碟片(就像相片光碟或用 CD-R 烧的 ``一次写入'' (one-offs) 片子)多数 Linux 核心 CD-ROM 驱动程式并不支援 XA 格式,虽然您也许能在一些档案库找到一些修补。
sbpcd 驱动程式是支援 XA 的。 如果您用这驱动程式,您可以依以下方法确定片子是不是 XA 的格式: 修改 sbpcd.c,允许显示"主目录"(TOC)资讯(DBG_TOC)。 然後做新核心,起动它,则每次挂上时都会显示 TOC(由主控台或记录档)。看第一个数字,如果是 20,那就是 XA 片子,如果是 00,那就是普通片子。 如果 TOC 显示不同的轨,那也是 XA 片子的信号。
(感谢 Eberhard Moenkeberg 提供以上资讯)
其它的无法读取 CD 可能原因: 它不是用 ISO-9660 档案系统(如 : 有的用 SunOS 或 HFS) 它是 CD 唱片 CD 有损坏或毁伤 您把光碟片放反了 :-)
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 11.我关机时,为什麽托盘自动退出来?
-
-
- 12.我挂载 CD-ROM 时得到: Read-Only file system 讯息?
-
-
- 13.Linux 是否支援任何 CD-ROM 的烧录设备?
-
- 答案:
- X-CD-Roast 套件(Linux 版)是使用 CD 烧录机的图形化前端介面。 此套件可在 metalab.unc.edu 里的 /pub/Linux/utls/disk-management/xcdroast-0.95.tar.gz 找著。
-
- 14.为什麽 find 命令不太正常?
-
-
- 15.我能用 CD-ROM 起动 Linux 吗?
-
-
- 16.我如何将 CD-ROM 用 NFS 与其它电脑共享?
-
- 答案:
- 您需要在/etc/exports档中加入一个项目; 这样别的机器的使用者就可以挂上它了。 请看 exports(5) 这份说明页
-
- 17.为何我要卸下光碟时,却得到 "device busy" 讯息?
-
-
- 答案:
-
如果有任何程序正在存取这机器,包括它们的现行目录正在它上面,那就不能卸下。 如果您实在不晓得那个程序正在使用这片光碟,您可以像下例一样的用 fuser 命令:
% umount /mnt/cdrom umount: /dev/hdd: device is busy % fuser -v /mnt/cdrom USER PID ACCESS COMMAND /mnt/cdrom tranter 133 ..c.。 bash
在有些系统您可能要以 root 身份执行 fuser 指令才能看到其它人的程序资讯。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 18.没有 root 身份的人,如何挂上及卸下光碟片
-
-
- 答案:
-
多数 mount 命令支援user选项。 假设您在 /etc/fstab 里加入了这样一行:
/dev/sbpcd /mnt/cdrom iso9660 user,noauto,ro
那麽普通使用者就可以像下面这样挂上或卸下这台机器的资料:
% mount /mnt/cdrom % umount /mnt/cdrom
挂上程序将会加上一些额外选项以确保系统安全(例如: 程式不准执行,片子上的设备档将失效(不予理会)); 如果这些限制过严了,您可以加入额外的选项(如 "exec" 选项可以让上面的程式可执行)。 请看 mount(8) 说明页得知详情。
另一个办法就是抓 usermount软体,它允许非 root 之使用者挂上/卸下可移除设备,如软碟及 CD-ROM 等,但限制对其它设备的动作 (如硬碟分割区)。 它在主要的档案库都有。
在 ftp.cdrom.com 里有 mount.c 的原始码,它允许一般使用者挂上/卸下 CD-ROM。 它必须 setuid 後才能这麽做。
(译注 : setuid 是指,将执行档执行时的权限变成和执行档所有人相同。 普通执行档执行时,权限是执行者的权限,这样的话很多程式都不能跑(如: 您不能修改/etc/passwd,所以不能变更密码。)。 而如果setuid,该档又是root所有,这种执行档就有root权限了。 (像passwd程式就是靠这个改密码的)。 不过 setuid 反过来也可能是系统安全的主要漏洞。)
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网