⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hardware-special-device.html

📁 学习linux的工具书
💻 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>标&nbsp; 题: Linux下的几种特殊块设备
<br>发信站: BBS 水木清华站 (Wed Dec 31 14:57:24 1997)
<p>(1) RAM Disk
<p>&nbsp;&nbsp; device /dev/ram1 ~ /dev/ram8&nbsp;&nbsp;&nbsp; device number
(1,1)-(1,8)
<br>&nbsp;&nbsp; 缺省ramdisk最大为4M, 其实际容量根据占用情况调整.若要使用
<br>&nbsp;&nbsp; 大于4M的ramdisk, 可以给kernel加参数 ramdisk_size来调整
<p>&nbsp;eg: mke2fs /dev/ram1&nbsp;&nbsp;&nbsp; 在块设备/dev/ram1上建ext2
fs
<br>&nbsp;&nbsp;&nbsp;&nbsp; mount /dev/ram1 /mnt
<p>&nbsp;&nbsp;&nbsp;&nbsp; mke2fs /dev/ram2 2048 设定最大为2048K
<br>&nbsp;&nbsp;&nbsp;&nbsp; mount /dev/ram2 /mnt
<p>(2) Loopback Device
<p>&nbsp;&nbsp; device /dev/loop0 ~ /dev/loop7&nbsp; device number (7,0)-(7,7)
<br>&nbsp;&nbsp; 所谓loopback device指的就是拿文件来模拟块设备, 首先你的kernel要支持,
<br>&nbsp;&nbsp; 可以在compile kernel时加入loop支持,或加入loop模块
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insmod loop
<p>&nbsp;&nbsp; eg: dd if=/dev/zero of=/tmp/rootfs bs=1k count=2048&nbsp;
建一个2M的全0文件
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mke2fs /tmp/rootfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
在rootfs文件上建ext2 fs
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mount /tmp/rootfs /mnt -o loop&nbsp;&nbsp;
将rootfs mount在/mnt上
<p>&nbsp;&nbsp; 这里介绍的是简单的-o loop用法,另一种用法是losetup(man
losetup for more
<br>&nbsp;&nbsp; details)
<br>&nbsp;&nbsp; eg:&nbsp; losetup /dev/loop1 /tmp/rootfs&nbsp; 将loop1设备与rootfs相连接,
此时
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
losetup /dev/loop1可见信息
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mount /dev/loop1 /mnt
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; losetup -d /dev/loop1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
去除loop1设备与文件的确联结
<p>(3) MD (Multiple Devices)
<p>&nbsp;&nbsp; device /dev/md0 ~ /dev/md3&nbsp; device number (9,0)-(9,3)
<br>&nbsp;&nbsp; MD driver可以将几个硬盘分区合起来成为一个逻辑上的块设备,
现在支持
<br>&nbsp;&nbsp; linear(线性相连)和RAID-0(使数据尽可能均匀分布在各分区上).
内核中一般都
<br>&nbsp;&nbsp; 已有MD support, 其utility在:
<p>&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; 我放了一份在PKU LIB:
<br>&nbsp;&nbsp; <a href="ftp://ftp.lib.pku.edu.cn/incoming/linux/md035.tgz">ftp://ftp.lib.pku.edu.cn/incoming/linux/md035.tgz</a>
<p>&nbsp;&nbsp; 将其解开后make install即可将几个utility和man装好
<p>&nbsp; eg: 将/dev/hda2和/dev/hda4 两个分区和成一个逻辑分区
<br>&nbsp;&nbsp;&nbsp;&nbsp; mdadd /dev/md0&nbsp;&nbsp; /dev/hda2 /dev/hda4&nbsp;&nbsp;
指定/dev/md0包括的物理分区
<br>&nbsp;&nbsp;&nbsp;&nbsp; mdrun -pl /dev/md0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
用linear方式启动/dev/md0
<br>&nbsp;&nbsp;&nbsp;&nbsp; mount /dev/md0 /mnt
<br>&nbsp;&nbsp;&nbsp;&nbsp; ....
<br>&nbsp;&nbsp;&nbsp;&nbsp; mdstop /dev/md0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
停止/dev/md0设备的工作
<br>&nbsp;&nbsp;&nbsp;&nbsp;   
<br>&nbsp;&nbsp; MD设备可将不相邻的小分区合成大分区, 对于有时不想重分区可能有点用,
<br>&nbsp;&nbsp; 但可惜好象不能用于root设备?
<br>&nbsp;
<p>btw:&nbsp; 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>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -