📄 hardware-special-device.html
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="Edward Fu">
<meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
<title>Freesoft Linux FAQ -- 几种特殊的块设备</title>
</head>
<body>
发信人: raner (lilo), 信区: Linux
<br>标 题: Linux下的几种特殊块设备
<br>发信站: BBS 水木清华站 (Wed Dec 31 14:57:24 1997)
<p>(1) RAM Disk
<p> device /dev/ram1 ~ /dev/ram8 device number
(1,1)-(1,8)
<br> 缺省ramdisk最大为4M, 其实际容量根据占用情况调整.若要使用
<br> 大于4M的ramdisk, 可以给kernel加参数 ramdisk_size来调整
<p> eg: mke2fs /dev/ram1 在块设备/dev/ram1上建ext2
fs
<br> mount /dev/ram1 /mnt
<p> mke2fs /dev/ram2 2048 设定最大为2048K
<br> mount /dev/ram2 /mnt
<p>(2) Loopback Device
<p> device /dev/loop0 ~ /dev/loop7 device number (7,0)-(7,7)
<br> 所谓loopback device指的就是拿文件来模拟块设备, 首先你的kernel要支持,
<br> 可以在compile kernel时加入loop支持,或加入loop模块
<br> insmod loop
<p> eg: dd if=/dev/zero of=/tmp/rootfs bs=1k count=2048
建一个2M的全0文件
<br> mke2fs /tmp/rootfs
在rootfs文件上建ext2 fs
<br> mount /tmp/rootfs /mnt -o loop
将rootfs mount在/mnt上
<p> 这里介绍的是简单的-o loop用法,另一种用法是losetup(man
losetup for more
<br> details)
<br> eg: losetup /dev/loop1 /tmp/rootfs 将loop1设备与rootfs相连接,
此时
<br>
losetup /dev/loop1可见信息
<br> mount /dev/loop1 /mnt
<br> ...
<br> losetup -d /dev/loop1
去除loop1设备与文件的确联结
<p>(3) MD (Multiple Devices)
<p> device /dev/md0 ~ /dev/md3 device number (9,0)-(9,3)
<br> MD driver可以将几个硬盘分区合起来成为一个逻辑上的块设备,
现在支持
<br> linear(线性相连)和RAID-0(使数据尽可能均匀分布在各分区上).
内核中一般都
<br> 已有MD support, 其utility在:
<p> <a href="ftp://sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux/md035.tgz">ftp://sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux/md035.tgz</a>
<br> 我放了一份在PKU LIB:
<br> <a href="ftp://ftp.lib.pku.edu.cn/incoming/linux/md035.tgz">ftp://ftp.lib.pku.edu.cn/incoming/linux/md035.tgz</a>
<p> 将其解开后make install即可将几个utility和man装好
<p> eg: 将/dev/hda2和/dev/hda4 两个分区和成一个逻辑分区
<br> mdadd /dev/md0 /dev/hda2 /dev/hda4
指定/dev/md0包括的物理分区
<br> mdrun -pl /dev/md0
用linear方式启动/dev/md0
<br> mount /dev/md0 /mnt
<br> ....
<br> mdstop /dev/md0
停止/dev/md0设备的工作
<br>
<br> MD设备可将不相邻的小分区合成大分区, 对于有时不想重分区可能有点用,
<br> 但可惜好象不能用于root设备?
<br>
<p>btw: Happy New Year To All Linux/FreeBSD/GNU fans!
<br>----
<p>简单补充一下,关于Initial Ram Disk,主要用于内核在安装根文件系统(root
fs)之前
<br>预装一些模块。如果你在lilo里指定了一个初始化内存虚拟盘的映像文件(如initrd.img)
<br>则内核在安装root之前把这个文件作为root安装上,如果有linuxrc文件则执行它,否则
<br>调入模块之后再御载,重新安装真正的root设备。如果你用了SCSI设备,Redhat的安装
<br>程序通常就是这么干的。
<br>如何看已知的映像文件里的内容呢?raner提醒我那是zip压缩过的(file initrd.img),
<br>于是cp initrd.img initrd.gz; gzip -d initrd.gz; mount -o loop initrd
/mnt就行了。
<br>自己要定做一个映像文件可以用mkinitrd命令(man mkinitrd)。
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -