archlinux下启动ubuntu

来源:互联网 发布:弓箭女王升级数据 编辑:程序博客网 时间:2024/05/22 05:29

在工程项目中,可能遇到一些模块,他们运行在ubuntu的系统下(主要是依赖的库),而手上的板子安装ubuntu系统有问题(官方的安装包,对于你的板子可能存在分区和grub引导的问题,导致安装后无法启动,又无法手动修改安装包,导致无法安装ubuntu,我这里遇到这样的情况),这时候可能就需要绕道archlinux,然后在archlinux上安装ubuntu的根文件系统,chroot切换到ubuntu的环境中,进行开发.

安装archlinux环境

如何安装archlinux,可以在之前的文章archlinux安装已介绍.

在archlinux基础上安装ubuntu

首先需要安装debootstrap工具,debootstrap是一个用
来在已经安装好的系统上,安装一个ubuntu系统到你指定的文件夹中的工具.详细介绍见debian的wiki之Debootstrap
archlinux下安装debootstrap,非常容易:

pacman -S debootstrap

安装过程中可能出现签名问题,错误信息如下:

error:wget: signature from "Levente Polyak (anthraxx) <levente@leventepolyak.net> is unknown trust...."

密钥导入失败的原因可能有以下几种:

  • 过期的archlinux-keyring包
  • 系统时间不正确
  • ISP屏蔽了PGP keys的端口
  • pacman缓存中包含之前的未签名的软件包
//设置时间date -s 01/15/2017date -s 11:05:00//我这里更新了ttf-dejavu和keyring就可以了,如果还是不行,你可能需要按上面逐点排查一下.pacman -S --force ttf-dejavupacman -Sy archlinux-keyring && pacman -Syyu

接着利用debootstrap来安装ubuntu系统到指定的目录.

debootstrap --arch amd64 trusty ~/ubuntu http://mirrors.163.com/ubuntu///amd64 64位平台//trusty 版本代号//~/ubuntu ubuntu的根文件系统安装路径//http://mirrors.163.com/ubuntu/ ubuntu源地址

源地址可以在ubuntu源列表中寻找适合自己的ubuntu源,国内的使用163的挺快的.
修改源信息:

vim /etc/apt/sources.list//修改后的sources.list文件内容如下deb http://mirrors.163.com/ubuntu trusty main restricted universe multiverse//然后开始下载/安装ubuntu的根文件系统到你指定的目录debootstrap --arch amd64 trusty ~/ubuntu http://mirrors.163.com/ubuntu/

安装完成后,chroot之前,挂载proc、sys、dev到ubuntu文件系统中:

cd ~/ubuntumount -t proc proc proc/mount --rbind /sys sys/mount --rbind /dev dev/ chroot ~/ubuntu

切换到ubuntu根目录,此时可能连ls命令都无法执行,琢磨了一会,后来发现原因是ubuntu的文件系统在archlinux的PATH路径下找不到这些命令(听起来有点绕,执行下面命令就好了),需要添加ubuntu下的这些命令的路径.

export PATH="$PATH:/usr/sbin:/sbin:/bin"

到这里在archlinux下安装ubuntu完毕.

0 0