firespirit 发表于 2004-2-27 14:03:59

loopback device是指什么?

编译完2.6.3之后,在安装(make install)这一步,已经正确生成bzImage文件了,然后出错,错误信息提示是:loopback设备都在使用中。把所有应用程序都关掉,仅仅打开Xterm,再运行make install,仍然出现同样的错误。
关机、重启,然后直接make install,就可以顺利安装完成,显然这个时候没有启动loopback设备。
那么到底什么算是loopback设备呢?
:?:

zhangkun 发表于 2004-2-27 14:28:55

网卡停掉试试.

firespirit 发表于 2004-2-27 14:38:11

重启以后也没有停掉网卡啊,但是就可以编译了

zhangkun 发表于 2004-2-27 14:51:36

我的理解是,既然是LOOPBACK,应该和网络有关.仅此而已.

firespirit 发表于 2004-2-27 15:22:10

看到有高手说:“ 所谓loopback device指的就是拿文件来模拟块设备”
还是不明白到底什么算是loopback device :neutral:

pinper 发表于 2004-2-27 16:01:10

所谓loopback也就是回接设备,是一个设备文件,但是这个设备文件其实并没有对应一个具体的设备,所对应的只是一个普通的文件,但是它可以执行设备文件的一些操作,比如mount等

firespirit 发表于 2004-2-27 17:23:16

在make install 时提示

+ exec /sbin/installkernel 2.4.21 bzImage /usr/src/linux-2.4.21/System.map ''
All of your loopback devices are in use.
mkinitrd failed
make: *** Error 1
make: Leaving directory `/usr/src/linux-2.4.21/arch/i386/boot'
make: *** Error 2

这是什么原因引起的?
:roll:

pinper 发表于 2004-2-28 11:44:36

在mkinitrd脚本中这一段:
dd if=/dev/zero of=$IMAGE bs=1k count=$IMAGESIZE 2> /dev/null || exit 1

LODEV=$(echo findlodev | /sbin/nash --quiet)

if [ -z "$LODEV" ]; then
    rm -rf $MNTIMAGE $MNTPOINT $IMAGE
    echo "All of your loopback devices are in use." >&2
    exit 1
fi

losetup ${LODEV} $IMAGE || exit 1

其中LODEV=$(echo findlodev | /sbin/nash --quiet)就是找一个loopback设备,比如/dev/loop0(0到255),其中nash.c中关于findlodev指令:
for (devNum = 0; devNum < 256; devNum++) {
        sprintf(devName, "/dev/loop%s%d", separator, devNum);
        if ((fd = open(devName, O_RDONLY)) < 0) return 0;

        if (ioctl(fd, LOOP_GET_STATUS, &loopInfo)) {
          close(fd);
          printf("%s\n", devName);
          return 0;
        }

        close(fd);
    }
有兴趣的话可以自己研究一下:
mkinitrd脚本
Documentation/initrd.txt
Documentation/ramdisk.txt

firespirit 发表于 2004-2-29 21:45:34

谢谢
initrd文件是做什么用的呢?把引导文件中的initrd一项注释掉,也可以正常进入系统
它究竟起什么作用?

Dragonfly 发表于 2004-3-1 23:55:04

我的理解是,既然是LOOPBACK,应该和网络有关.仅此而已.


this loopback is not network loopback. see other post explanation

pinper 发表于 2004-3-5 09:38:24

谢谢
initrd文件是做什么用的呢?把引导文件中的initrd一项注释掉,也可以正常进入系统
它究竟起什么作用?
在源代码目录下Documentation/initrd.txt 中解释的很清楚,一个作用是编译尽可能小的内核,第二可以预加载模块,可以在加载真正的根目录前加载一些需要的模块比如根目录是ext3文件系统的,但是的ext3支持是以模块的形式提供,就可以在其中先加载模块,然后就可以加载根目录了

firespirit 发表于 2004-3-5 10:05:14

I C
initrd.img文件的作用就是在真正启动内核之前,在内存中形成一个Linux环境,这样,许多内核选项(例如ext3)就可以被编译成模块,而不必编译到内核中了,因此也就提供了编译最小内核的可能,对吧 8)

pinper 发表于 2004-3-5 10:26:01

差不多了,而且有一个简单的解释器就是nash,由nash解释执行/linuxrc文件,而在/linuxrc中就可以干点什么了
页: [1]
查看完整版本: loopback device是指什么?