我想在我的Ubuntu服务器上使用LIO iscsi-target软件来托pipe我的VMware机器的目标。
唯一的问题是,我似乎无法find任何types的指南或步骤来编译一个新的内核与所需的修改。
任何想法如何我可以去这个过程?
我确实发现了这一点,但它是为了CentOS,所以我在这个困境下不会为我工作,还是会这样?
我为OpenSUSE( 链接 )写了一个,你可能已经在你的谷歌search过程中遇到过。 由于这是基于RPM的分布,所有的步骤都不是100%准确的。
你想要做的是在Ubuntu上完全可能的。 第一步是在本地获取本地内核源代码归档。 这是广泛logging在这里 。 关键的一步是
sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r) apt-get source linux-image$(uname -r)
这将在本地获得。 阅读整个事情更多关于编译内核的细节。
从那里,你需要从backports通道中获取LIO档案(参见我的链接)。
git clone git://linux-iscsi.org/lio-core-backports.git lio-core-backports.git git clone git://git.kernel.org/pub/scm/linux/storage/lio/lio-utils lio-utils.git
下一步:准备内核。 将目录更改为内核源代码(很可能是/ usr / src / linux)并运行以下一对命令:
make oldconfig make prepare
这将准备内核来编译当前内核版本的模块。
接下来,转到上面创build的lio-core-backports.git目录并运行:
./autoconfig make make install
这里的错误很可能是由于内核归档文件没有被正确的准备好。 这里的最后一步实际上安装了模块。 现在安装使pipe理更容易的实用程序。
切换到lio-utils.git目录并重复上述命令。
您现在已经(可能)安装了LIO-Target。 时间让你的configuration文件起作用了。 一旦你弄清楚了如何调整configuration文件,你已经安装了内核模块并准备好了。
免责声明:我对Ubuntu的软件包pipe理器是如何工作的不太了解,所以上面的apt-get东西是直接从文档中提取的。 你的实际命令可能有所不同 不包括电池。
在Ubuntu上做这个工作稍微复杂一些。 我已经在3.2内核上完成了它,但是我认为3.0内核中的所有内容都已经可以使用了。
从kernel.org或rts中获取git:configshell <make deb&install deps&dpkg -i targetcli <make deb&install deps&dpkg -i rtslib <make deb&install deps&dpkg -i lio-utils <run dpkg-在./debian中构build包
安装lio-utils之后,我不得不chmod 755 / usr / lib / python / dist-packages / tcm_ * py
在/etc/init.d/target start之后,我必须手动挂载configfs一次,然后重新启动目标
之后,你应该能够运行状态命令。
root@klappstuhl:~# /etc/init.d/target status [---------------------------] TCM/ConfigFS Status [----------------------------] [---------------------------] LIO-Target Status [----------------------------]
没有商业工具就无法工作的声明似乎主要是FUD。
这个版本并不是很容易,而Ubuntu 7以来的文档还没有看到爱,但是如果Ubuntu可以专注于正确打包这个软件,而不是像以前那样老的软件,那么它还是会很好的(因为没有适当的保留和tgtd无法使用启动器组ACL – 没有ip / netmask设置不是启动器组!