NetBSD不能访问不是512 bytes/sector格式介质上的FFS文件系统。 这和这张CD上有没有cgd没关系, 因为这张CD上cgd的分区是2048 bytes/sector.
但是 CD 驱动程序 cd(4) 足够聪明地允许在这张CD的(模拟)disklabel上执行"写"操作。 所以配置 cgd 前, 我们先看一下 disklabel 并稍作修改:
代码: 全选
# disklabel -e cd0
# /dev/rcd0d:
type: ATAPI
disk: mydisc
label: fictitious
flags: removable
bytes/sector: 2048 # -- Change to 512 (= orig / 4)
sectors/track: 100 # -- Change to 400 (= orig * 4)
tracks/cylinder: 1
sectors/cylinder: 100 # -- Change to 400 (= orig * 4)
cylinders: 164
total sectors: 16386 # -- Change to value of slice "d" (=65544)
rpm: 300
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
4 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 65544 0 4.2BSD 0 0 0 # (Cyl. 0 - 655+)
d: 65544 0 ISO9660 0 0 # (Cyl. 0 - 655+)
如果你不想每次手动执行这些修改, 你可以使用Florian Stoehr的工具 neb-cd512 目前在(写这篇文章时) pkgsrc-wip 而且马上要移至 sysutils/neb-cd512 . 你也可以从 http://sourceforge.net/projects/neb-stoehr/ 下载neb-cd512的源代码, (记住用neb-cd512, 不是neb-wipe!).
以root身份并以磁盘名称作为调用参数:
代码: 全选
# neb-cd512 cd0
现在因为disklabel已经是512 b/s的格式了, 可以轻松地访问这张CD了:
代码: 全选
# cgdconfig cgd1 /dev/cd0d /etc/cgd/image
# mount -o ro /dev/cgd1a /mnt
说明 cgd 必须 被挂载为只读,否则你将从 cd(4) 驱动程序得到非法命令的错误导致,cd(4) 驱动程序有时甚至无法挂载一个基于CD的cgd!
现在我们全完成了! 享受你的安全CD吧!
代码: 全选
# ls /mnt
记住你必须反向所有的步骤才能退出CD盘:
代码: 全选
# umount /mnt
# cgdconfig -u cgd1
# eject cd0