无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2011niumao
打印 上一主题 下一主题

[发布] SQUASHFS系统UBUNTU20.04与18.04,VHD系统UBUNTU16.04(64位)

    [复制链接]
271#
 楼主| 发表于 2013-6-25 12:02:55 | 只看该作者
2011aaa 发表于 2013-6-25 11:29
initrd.img 里的脚本是什么语法啊 看不懂啊,想看明白都什么意思


估计是C语言。或者是shell脚本。但语法不算难吧?我的C语言约等于0的,也看懂了啊。。
回复

使用道具 举报

272#
发表于 2013-6-25 12:21:01 | 只看该作者
我是直接将vbuntufix的grub菜单拷贝到suse的cfg的,就换掉了前两行
        load_video
        set gfxpayload=keep
        insmod gzio
能启动,到最后看到了buffer i/o error,不知道是不是那个非ntfs无法读写的事,现在硬盘全部是ext4的分区,并且suse没有ntfs的分区编辑,不成就要舍弃vhd再另分区直接上个ubuntu了。

点评

o 。这个还真不知道什么原因。应该不是非ntfs的问题。可能与虚拟机模块有关。 目前也没有好方法。就算改成了ntfs恐怕也不行的。 建议===下载使用第六版吧。呵呵===可以放在移动硬盘上===这次 是真的无损制作了===  详情 回复 发表于 2013-6-25 12:45
回复

使用道具 举报

273#
 楼主| 发表于 2013-6-25 12:45:49 | 只看该作者
William叔叔 发表于 2013-6-25 12:21
我是直接将vbuntufix的grub菜单拷贝到suse的cfg的,就换掉了前两行
        load_video
        set gfxpayload= ...

o 。这个还真不知道什么原因。应该不是非ntfs的问题。可能与虚拟机模块有关。
目前也没有好方法。就算改成了ntfs恐怕也不行的。
建议===下载使用第六版吧。呵呵===可以放在移动硬盘上===这次
是真的无损制作了====看看第六版的使用说明即可。
回复

使用道具 举报

274#
 楼主| 发表于 2013-6-26 17:11:50 | 只看该作者
本帖最后由 2011niumao 于 2013-6-26 17:14 编辑

发现一处错误。请自己更正一下。
需要编辑/usr/sbin/mkinitramfs 这个脚本
  1. sudo gedit /usr/sbin/mkinitramfs
复制代码
在靠后面的几行中有一行是copy_exec /sbin/vlosetup /sbin  。请删除那个v把 vlosetup改为losetup就可以了。
改正后那几行为:
  1. # module-init-tools
  2. copy_exec /sbin/modprobe /sbin
  3. copy_exec /sbin/rmmod /sbin
  4. copy_exec /sbin/losetup /sbin
  5. mkdir -p "${DESTDIR}/etc/modprobe.d"
  6. cp -a /etc/modprobe.d/* "${DESTDIR}/etc/modprobe.d/"
复制代码
如果是从全新安装的ubuntu出发想制作vhd系统,也需要这个更改===但是是加上那个带有losetup的一行进去。
回复

使用道具 举报

275#
发表于 2013-6-26 19:38:06 | 只看该作者
估计suse不能启动就是ntfs磁盘格式的问题了,昨天安装好了windows,今天将vbuntufix的cfg菜单启动项拷贝到suse启动菜单里面,把vbuntufix文件夹拷贝到ntfs分区下面,又尝试了一下,现在正常使用了。

点评

o 祝贺啊。看来只能是ntfs系统了。 有可能是因为vhd是微软自己设计的类型,只能在ntfs 或者fat上使用。 人为加了限制了。  详情 回复 发表于 2013-6-26 20:16
回复

使用道具 举报

276#
 楼主| 发表于 2013-6-26 20:16:13 | 只看该作者
William叔叔 发表于 2013-6-26 19:38
估计suse不能启动就是ntfs磁盘格式的问题了,昨天安装好了windows,今天将vbuntufix的cfg菜单启动项拷贝到s ...

o 祝贺啊。看来只能是ntfs系统了。
有可能是因为vhd是微软自己设计的类型,只能在ntfs 或者fat上使用。
人为加了限制了。
回复

使用道具 举报

277#
发表于 2013-6-27 13:04:34 | 只看该作者
个人觉得不应该是磁盘格式的问题。请问提示的错误是什么?我在ubuntu下,把磁盘镜像放在ext的分区下,是可以启动的。
回复

使用道具 举报

278#
 楼主| 发表于 2013-6-27 13:31:17 | 只看该作者
本帖最后由 2011niumao 于 2013-6-27 13:32 编辑
paulhybryant 发表于 2013-6-27 13:04
个人觉得不应该是磁盘格式的问题。请问提示的错误是什么?我在ubuntu下,把磁盘镜像放在ext的分区下,是可以 ...


很好的消息。他的提示说 i/o buffer error ???
不知道什么原因。此外我在local文件里面看到了对文件格式的检查代码,不知道它有什么用。
hehe。local文件263楼附件。或者 /usr/share/initramfs-tools/scripts/local。
回复

使用道具 举报

279#
 楼主| 发表于 2013-6-27 16:02:31 | 只看该作者
百度了一下,i/o buffer error 主要是硬盘或分区表有些错误。
可以通过磁盘检查修正。
回复

使用道具 举报

280#
发表于 2013-6-27 23:16:11 | 只看该作者
2011niumao 发表于 2013-6-24 18:44
2012studyvhd 发表于 2013-6-24 17:54
看了楼主新版的基于kpartx命令的引导机制的说明,
那么楼主新版的 ...

最近手动制作了initrd.img,按照楼主简单描述发现制作的initrd.img不能引导。可能是哪个细节没注意到吧
具体有几个关于引导initrd.img的细节想请教一下楼主

1 解包打包制作完的initrd.img需要将其复制其VHD系统的 /boot/目录之下吗?
2 关于local脚本的,能否提供一下楼主更改的具体地方,呵呵,懒得对比vloop里的代码。
感觉local里的代码必须对应不同的VHD做修改,这只是猜想,不知是否对否?
3 是否需要在VHD里增加额外的代码脚本,是否需要重新编译VHD系统的内核?
回复

使用道具 举报

281#
发表于 2013-6-27 23:22:00 | 只看该作者
2011niumao 发表于 2013-6-24 18:49
可以在virtualbox内启动么?如果能,则可以在虚拟机内做好修改。
===估计是需要安装虚拟机增强工具什么 ...

救援模式执行代码,不存在此命令。
虚拟机下,貌似启动不了。好吧,我放弃了。==
回复

使用道具 举报

282#
发表于 2013-6-28 06:37:21 | 只看该作者
2012studyvhd 发表于 2013-6-27 23:22
救援模式执行代码,不存在此命令。
虚拟机下,貌似启动不了。好吧,我放弃了。==

在虚拟机下应该也可以启动,如果不能启动的话很有可能是驱动的问题。觉得可能udev的rule处理好应该就可以启动了。不过没有试过。
回复

使用道具 举报

283#
 楼主| 发表于 2013-6-28 09:05:40 | 只看该作者
paulhybryant 发表于 2013-6-28 06:37
在虚拟机下应该也可以启动,如果不能启动的话很有可能是驱动的问题。觉得可能udev的rule处理好应该就可以 ...


呵呵。您是高手。非常正确。非常感谢。
其实执行一下命令就可以看出来我在local文件中改写的vmlite的代码了。
  1. sudo gedit /usr/share/initramfs-tools/scripts/local
复制代码
使用**********括住的那一段就是了。
原来vmlite代码是一句
  1. vlosetup /dev/loop0 ***
复制代码
我改为了
  1. losetup /dev/loop0 ****
  2. kpartx -av /dev/loop0
复制代码
其他改动也有但都是没有用的或者简化的。
回复

使用道具 举报

284#
 楼主| 发表于 2013-6-28 09:51:41 | 只看该作者
本帖最后由 2011niumao 于 2013-7-6 00:35 编辑
2012studyvhd 发表于 2013-6-27 23:16
最近手动制作了initrd.img,按照楼主简单描述发现制作的initrd.img不能引导。可能是哪个细节没注意到吧
...


本质上仅仅需要自己制作一个可以引导固定大小 vhd ubuntu 的initrd.img,然后把initrd.img vmlinuz复制到与vhd文件同一个目录之中,设置引导就可以了。
vhd系统内部可以不做任何更改。
但为了方便,也是为了把kpartx losetup加入到initrd.img中,应该安装以下三个软件:
kpartx kpartx-boot util-linux dmsetup.


或者打开一个终端,输入以下命令
  1. sudo apt-get install kpartx kpartx-boot util-linux dmsetup
复制代码
此外需要手工修改三个文件。详细修改看看附件。

vhdbootdiy.zip (9.73 KB, 下载次数: 37)



回复

使用道具 举报

285#
发表于 2013-6-29 18:19:52 | 只看该作者
2011niumao 发表于 2013-6-28 09:51
本质上仅仅需要自己制作一个可以引导固定大小 vhd ubuntu 的initrd.img,然后把initrd.img vmlinuz复制到 ...

经实验,楼主提供的方法完全可以用于1304系列的ubuntu系统。在楼主的帮助下,封装vhd 13.04 成功。
回复

使用道具 举报

286#
发表于 2013-6-29 18:27:27 | 只看该作者
2011niumao 发表于 2013-6-28 09:51
本质上仅仅需要自己制作一个可以引导固定大小 vhd ubuntu 的initrd.img,然后把initrd.img vmlinuz复制到 ...

只是封装的时候出现一个怪现象,就是在虚拟机的时候声卡可以完美运行。 但是用本机启动到vhd系统时声卡却出现问题。于是我就参考了下面的文章,安装声卡驱动,但是失败,出现下列信息
checking for kernel linux/version.h ... no
The file /lib/modules/3.8.0-25-generic/build/include/INCLUDE_VERSION_H does not exist.
Please install the package with full kernel sources for your distribution
or use --with-kernel=dir option to specify another directory with kernel
sources (default is /lib/modules/3.8.0-25-generic/build).
参考链接:http://www.moqifei.com/archives/965
不知我哪里出错了,不知楼主以前遇到过这种情况吗?
回复

使用道具 举报

287#
 楼主| 发表于 2013-6-29 19:14:54 | 只看该作者
2012studyvhd 发表于 2013-6-29 18:19
经实验,楼主提供的方法完全可以用于1304系列的ubuntu系统。在楼主的帮助下,封装vhd 13.04 成功。

很高兴这个反馈!这意味着 UBUNTU的vhd制作应该没有问题了。我估计所有的linux发行版都可以用类似方法
做出vhd系统。呵呵。留着等有时间再折腾吧。
回复

使用道具 举报

288#
 楼主| 发表于 2013-6-29 19:25:52 | 只看该作者
2012studyvhd 发表于 2013-6-29 18:27
只是封装的时候出现一个怪现象,就是在虚拟机的时候声卡可以完美运行。 但是用本机启动到vhd系统时声卡却 ...


声卡我折腾过一段时间。但是解决的是另一个问题: HDMI连线到电视上电视没有声音的问题。最后解决是在启动时候加一个内核参数 radeon.audio=1 (A卡)。
你的这个声卡问题不知道是什么原因。有可能是内核镜像不是最新版===与virtualbox启动时候使用的是不同版本的initrd.img.你可以在virtualbox启动后在vittualbox里面再制作一个能启动vhd的initrd.img,将他复制出来,用它引导vhd看看---原来的initrd.img要备份。可以使用系统监视器查看当前的内核版本。

至于提示,主要是安装内核时候没有安装头文件吧===在新立德里面搜索 linux-headers-generic linux-headers-3.8.0-25  ???安装上。因为从源码安装软件时需要头文件。
回复

使用道具 举报

289#
 楼主| 发表于 2013-6-29 19:31:56 | 只看该作者
2012studyvhd 发表于 2013-6-29 18:27
只是封装的时候出现一个怪现象,就是在虚拟机的时候声卡可以完美运行。 但是用本机启动到vhd系统时声卡却 ...

http://bbs.wuyou.net/forum.php?m ... ;extra=&page=25
这一页有菜单的新写法===grub4dos g2ldr(即grub2)可以使用这招,使用vhd内部的根目录下vmlinuz initrd.img引导vhd看看,可以查明是不是内核镜像的版本不同引起的。

现在1304已经是3.8.0-26了。
回复

使用道具 举报

290#
发表于 2013-7-1 23:38:44 | 只看该作者
2011niumao 发表于 2013-6-29 19:31
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=276747&extra=&page=25
这一页有菜单的新写法===gr ...

这种写法貌似在NTFS格式的磁盘无效。
我这边VHD放置所在的磁盘格式是NTFS,用该种写法测试了一下我制作的固定大小VHD系统。
貌似无法启动。
回复

使用道具 举报

291#
发表于 2013-7-1 23:49:27 | 只看该作者
本帖最后由 2012studyvhd 于 2013-7-1 23:54 编辑
2011niumao 发表于 2013-6-29 19:25
声卡我折腾过一段时间。但是解决的是另一个问题: HDMI连线到电视上电视没有声音的问题。最后解决是在启 ...


在新立德里面搜索 linux-headers-generic linux-headers-3.8.0-25 后安装上,依旧无法安装上声卡。可能是我太菜了吧

当然,最近反复弄,因为楼下的引导菜单貌似不能引导,所以在虚拟机上更新了系统内核,然后安装声卡,貌似老是安装不上,因为菜了,所以好像也没弄好。。。。。。

具体情况还是不清楚,表现为在虚拟机中播放音乐能听到声音,并且出现声音图标。
在vhd系统中播放音乐却不能听见声音,且系统不能出现声音图标。
貌似,还是声卡不能在vhd系统识别的问题吧??? 楼主能否给个简易方案?还是我哪里没弄好?
回复

使用道具 举报

292#
 楼主| 发表于 2013-7-2 11:01:06 | 只看该作者
2012studyvhd 发表于 2013-7-1 23:38
这种写法貌似在NTFS格式的磁盘无效。
我这边VHD放置所在的磁盘格式是NTFS,用该种写法测试了一下我制作的 ...


需要vhd文件连续存放。有时候可以用。有时候需要用工具软件整理一下碎片以后使用。
我一开始建立的vhd都可以直接使用。后来拷贝过几次,就都需要整理碎片以后可以使用了。
回复

使用道具 举报

293#
 楼主| 发表于 2013-7-2 11:09:43 | 只看该作者
本帖最后由 2011niumao 于 2013-7-2 11:15 编辑
2012studyvhd 发表于 2013-7-1 23:49
在新立德里面搜索 linux-headers-generic linux-headers-3.8.0-25 后安装上,依旧无法安装上声卡。可能 ...


我怀疑是一个设置问题。就是更改一个设置就好的。不用安装驱动的。
你可以到
/usr/share/applications
里面找找 应该有不少与声卡有关的程序。例如
gnome混音器,pulseaudio manager ,多媒体设置,声音。
都可以看看。
pulseaudio 最好安装上。音频设备输出可以选择输出到 pulseaudio.

另外 1304 没有声音似乎是个bug。即使是硬盘版,也有这个问题。
可以百度查查。
回复

使用道具 举报

294#
 楼主| 发表于 2013-7-2 11:20:02 | 只看该作者
本帖最后由 2011niumao 于 2013-7-2 11:24 编辑
2012studyvhd 发表于 2013-7-1 23:49
在新立德里面搜索 linux-headers-generic linux-headers-3.8.0-25 后安装上,依旧无法安装上声卡。可能 ...


百度结果 。 一种解决是

最近由于要开发linux下gstreamer应用,安装了ubunut 13.04。结果测试时发现没有声音,qq提示也没有声音,一检查,所有系统声音都没有。google了一下,有人说是缺少alsa库的问题。试了一下,确实有效。步骤如下:

        $sudo apt-get install libalsaplayer-dev

        然后打开声音设置,在左边的“输入”选项页卡中选中“模拟输出"即可。

       再打开音乐播放器,即可听到声音。
PS: 本文版权归属:西班牙橄榄油www.blankafood.com   转载请注明,肆意删除链接,我们将保留追责权利。

一个是在新立得重新安装 alsa-base
http://forum.ubuntu.org.cn/viewtopic.php?f=42&p=2995152


http://forum.ubuntu.org.cn/viewtopic.php?f=42&p=3008760

回复

使用道具 举报

295#
发表于 2013-7-3 00:25:09 | 只看该作者
试着升级了一下,为防不测,用的是iso镜像,把ubuntu在vbox升级到了13.04gnome版,发现声卡和无线网卡驱动在虚拟机里面正常,在实际启动时没有了,现在又要用回12.04的备份了。

点评

谢谢反馈。  发表于 2013-7-3 10:18
回复

使用道具 举报

296#
发表于 2013-7-5 22:43:50 | 只看该作者
楼主大神,
想到一个解决驱动封装后问题,也就是解决虚拟机中驱动完美运行,但到了实体机就驱动不正常的关于驱动的问题,
首先要看你使用那个版本的内核引导的系统,比如第六版的3.5.0????的,对比你的系统在虚拟机里面的内核却是3.8.0????的是否一致
那么启动的内核,也就是3.5的版本呢就不会加载安装系统时3.8内核所去加载的各个驱动模块咯,
好了,解决的办法因该也就明显了,
将3.5版本的驱动模块拷贝到系统里,或者,用楼主给的方法自己拿编译过的与虚拟机里的内核版本一致的引导文件启动VHD,

我的做法算比较卑贱了,源于安装时系统/lib/modules文件夹内也就没有专门给旧版内核的专门部署的驱动模块,启动后运行的是3.5的版本内核自然面临一部分内核模块缺失了,我将楼主的第六版也就是3.5版本的/lib/modules/3.5.0-33-generic文件夹拷贝到了/lib/modules发现果然声卡网卡都正常了,
但是现在还有一些问题,我的无线驱动正常加载了,无线信号信号有了,但就是连不上我自己的无线路由器,哎。。。

我在两个vhd系统试验了一下,一个正常工作,声卡和网卡都是正常的了,另外一个也就是13.04的那个,无线网卡还是不正常,想知道有没有谁有3.8.0-26-generic版本编译好的能引导vhd的内核分享一下。
或者楼主能不能给个3.8.0-26版的引导文件啥的呢。
只感觉我是瞎想瞎撞凑巧弄对了一个,也不知道原因是不是这样的,还是因为别的问题,如果是那为什么13.04的那个系统无线网卡怎么还是不能正常工作呢,
回复

使用道具 举报

297#
 楼主| 发表于 2013-7-5 23:17:03 | 只看该作者
本帖最后由 2011niumao 于 2013-7-6 10:19 编辑
楼主大神,
想到一个解决驱动封装后问题,也就是解决虚拟机中驱动完美运行,但到了实体机就驱动不正常的关于驱动的问题,
首先要看你使用那个版本的内核引导的系统,比如第六版的3.5.0????的,对比你的系统在虚拟机里面的内核却是3.8.0????的是否一致
那么启动的内核,也就是3.5的版本呢就不会加载安装系统时3.8内核所去加载的各个驱动模块咯,
好了,解决的办法因该也就明显了,
将3.5版本的驱动模块拷贝到系统里,或者,用楼主给的方法自己拿编译过的与虚拟机里的内核版本一致的引导文件启动VHD,

我的做法算比较卑贱了,源于安装时系统/lib/modules文件夹内也就没有专门给旧版内核的专门部署的驱动模块,启动后运行的是3.5的版本内核自然面临一部分内核模块缺失了,我将楼主的第六版也就是3.5版本的/lib/modules/3.5.0-33-generic文件夹拷贝到了/lib/modules发现果然声卡网卡都正常了,
但是现在还有一些问题,我的无线驱动正常加载了,无线信号信号有了,但就是连不上我自己的无线路由器,哎。。。

我在两个vhd系统试验了一下,一个正常工作,声卡和网卡都是正常的了,另外一个也就是13.04的那个,无线网卡还是不正常,想知道有没有谁有3.8.0-26-generic版本编译好的能引导vhd的内核分享一下。
或者楼主能不能给个3.8.0-26版的引导文件啥的呢。
只感觉我是瞎想瞎撞凑巧弄对了一个,也不知道原因是不是这样的,还是因为别的问题,如果是那为什么13.04的那个系统无线网卡怎么还是不能正常工作呢

威廉叔叔猜的应该是对的吧。可能就是内核与内核镜像 ==vmlinuz initrd.img 的问题。
那我就遵命制作了1304的 vmlinuz initrd.img 文件上传。版本是 3.8.0-26
http://pan.baidu.com/share/link? ... 74&uk=439719680
下载后改名为 vmlinuz initrd.img  ===原来的同名文件先备份或改一下名。
看看是否可以。
回复

使用道具 举报

298#
 楼主| 发表于 2013-7-6 00:40:59 | 只看该作者
看来原来提供的方法有一个问题,就是没有使用当前版本的mkinitramfs文件来制作initrd.img.
附件给了手工修改三个文件的方法和制作initrd,img的过程。
其中local init 也许也可以使用附件提供的版本,但是为了保险还是以手工修改为优先。

vhdbootdiy.zip

9.73 KB, 下载次数: 39, 下载积分: 无忧币 -2

回复

使用道具 举报

299#
发表于 2013-7-6 20:59:24 | 只看该作者
2011niumao 发表于 2013-7-6 00:40
看来原来提供的方法有一个问题,就是没有使用当前版本的mkinitramfs文件来制作initrd.img.
附件给了手工修 ...

实在感谢楼主提供了3.8.0的引导文件啊,
有了跟系统虚拟机里安装的一致的内核引导,发现解决了绝大部分问题,相比拷贝3.5的模块而言基本完美了。
说一下直接拷贝驱动模块吧,会有一些小毛病,比如壁纸有一点偏离屏幕但不影响什么程序,别的没有问题。
新内核引导后各种尝试了一下发现都没异常,壁纸也正常了,声卡,有线网卡,触摸板,USB,都正常的,但就是我的13.04的无线网卡就是没有被驱动,怀疑是不是虚拟机里安装的时候没有无线设备,所以就没有这部分驱动呢?毕竟嘛只有它不工作。
多谢楼主,准备按楼主方法作一下引导文件,感觉好做引导文件好神秘好高级啊。

关于VHD不能读取自己所在的分区的其他文件我有个想法,也不知道对不对,或许能提供一个思路,linux里面最底层的文件目录就是根目录“/  ”,由root直接所有,但是启动时VHD就是根目录,下辖其他所有分区,好了,vhd是在这个分区里的,那它所在的ntfs分区是比跟更高的目录级别吗,如果是这样的那么ntfs分区恐怕系统就识别不出来了,也不知道windows怎么分的级别,为什么win的vhd就能挂在自己所在的分区了呢?
本人也纯属小白啊,也不知道linux是怎么驱动和识别设备的知识,会不会对这个vhd所在的分区设备去编辑一下属性神马的,就能给linux识别了啊,不过感觉自己的想法比较扯了,呵呵。

点评

无线网卡,应该只需要设置一下就可以。百度了一下,有以下命令供参考  详情 回复 发表于 2013-7-6 21:56
我也是一边百度一边自己摸索做的,所以会走很多弯路。呵呵。 对于vhd文件所在分区,感觉你猜测的应该差不多。或者, 也可以归结为权限问题。 vhd所在分区最后被挂载为/host,也许只有root用户有权利使用?? 普通  详情 回复 发表于 2013-7-6 21:45
回复

使用道具 举报

300#
 楼主| 发表于 2013-7-6 21:45:29 | 只看该作者
William叔叔 发表于 2013-7-6 20:59
实在感谢楼主提供了3.8.0的引导文件啊,
有了跟系统虚拟机里安装的一致的内核引导,发现解决了绝大部分问 ...

我也是一边百度一边自己摸索做的,所以会走很多弯路。呵呵。
对于vhd文件所在分区,感觉你猜测的应该差不多。或者,
也可以归结为权限问题。
vhd所在分区最后被挂载为/host,也许只有root用户有权利使用??
普通用户可以如下使用vhd所在分区===假设vhd所在分区为/dev/sda8
  1. sudo mount /dev/sda8 /mnt
复制代码
在进入/mnt就可以看见该分区了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-25 21:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表