分页: 1 / 1

《NetBSD指南-14.4.3.使用加密的CD/DVD》

发表于 : 2010-03-02 22:22
leo
如上所述制作了加密CD后, 我们还没结束 - 我们重新挂载它一下会怎样? 读者可能会推测:在 /dev/cd0d 上配置就可以了 - 不, 这不行。

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