前提
- 安装Ubuntu 15.04仅支持树莓派2,即目前的最新版;
- 安装过程中需要用到SD卡,安装完也一直需要用到SD卡;
- 由于目前的镜像并未预置openssh-server,所以需要将树莓派连接显示器,和键盘。
原理
实际上就是将Ubuntu的整个根目录拷贝到移动硬盘,然后将引导分区由SD卡分区改至移动硬盘分区,最后设置Ubuntu移动硬盘分区为根目录挂载点。步骤
下载Ubuntu 15.04树莓派版镜像
Ubuntu官网提供的是Ubuntu 14.04 LTS的镜像,但实际上15.04早已有人发布到树莓派官方论坛,可以在[Ubuntu 15.04 (vivid) Raspberry Pi 2 image]找到下载链接。一共有3个版本提供下载,Desktop、server和standard,可以根据自己喜好下载;下载完是.img文件。
安装Ubuntu到SD卡
安装就是树莓派的标准安装了,官网有相关的教程,参考[INSTALLING OPERATING SYSTEM IMAGES]。登录Ubuntu
烧录到SD卡后插入到树莓派接上电源就开机了,预置的用户名和密码都是ubuntu
,注意此时并不需要apt-get update
之类的,因为还需要将整个根目录拷贝到移动硬盘。移动硬盘分区、格式化
接上移动硬盘,准备分区(实际上并不一定需要分区,如果你已经分区过的话),使用Linux’s Partition Editorsudo parted
输入print all
查看所有的设备及其分区选择移动硬盘(不出意外都是
sda
,不过还是需要看清楚)select /dev/sda
输入mklabel gpt
注意此命令会删除移动硬盘所有数据,确定则输入Y
确认。输入
q
退出parted使用fdisk进行后续操作,同样这里注意
sda
sudo fdisk /dev/sda
输入p
查看目前的分区,如果如上重建分区表的话应该是没有分区的。输入
n
新建分区First sector
直接用默认的就好,Last sector
输入+80G
即新建80G大小的分区,这里凭自己喜好。输入
p
查看分区,可以看到新建的/dev/sda1
分区。最后输入
w
写入分区表,完成分区格式化(注意
sda1
)sudo mke2fs -t ext4 -L rootfs /dev/sda1
挂载新分区
将移动硬盘的新分区挂载到/mnt
sudo mount -t ext4 /dev/sda1 /mnt
拷贝根目录到新分区
sudo rsync -axv / /mnt
这时可以先放松一下了,这个拷贝得花点时间的。修改树莓派引导分区
这里说下树莓派引导原理,树莓派上电启动时会寻找SD卡上/boot
下的cmdline.txt
,读取里面的参数决定引导分区。对于Ubuntu,默认引导为
/dev/mmcblk0p2
,即SD卡上的分区;此时需要修改为移动硬盘中分区sudo nano /boot/cmdline.txt
原本为:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootwait
修改为(注意sda1
,以及最后的延时5秒):dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda1 rootwait rootdelay=5
修改后保存修改挂载点
上一步修改完后实际上再次启动树莓派时就会从移动硬盘启动了,但这里还需要修改挂载点sudo nano /mnt/etc/fstab
将:/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
修改为(注意sda1
):/dev/sda1 / ext4 defaults,noatime 0 1
修改后保存。注意这里要理清:下次开机时,这次的
/mnt
就是下次的/
,即根目录了。重启
sudo reboot
重启可以发现树莓派绿灯只会在启动前几秒闪烁,之后就变成移动硬盘灯一直闪烁了。继续使用
ubuntu
账号密码登录。输入
df -h
可以看到如(我改成中文了):文件系统 容量 已用 可用 已用% 挂载点
/dev/root 79G 3.1G 72G 5% /
容量变成移动硬盘那个分区的大小了,挂载点是根目录/
注意:至此Ubuntu已经成功安装到了移动硬盘,但注意并不是说SD卡就没用了,因为每次启动树莓派都会从
/boot/cmdline.txt
读取引导,这个一定不能缺少!后续步骤
启用root
sudo passwd root
输入当前密码ubuntu
后,输入两次新root密码就启用root账户了。exit
然后重新用root登录即可。更新源
sudo apt-get update
sudo apt-get upgrade
设置SWAP
sudo apt-get install dphys-swapfile
会设置2G大小的SWAP分区,需要一点时间。安装openssh-server
sudo apt-get install openssh-server
注意修改/etc/ssh/sshd_config
,主要是允许root登录和密码登录。另一种方法
考虑到引导时指定的是sda1,显然如果有新的存储设备连接到树莓派,开机启动时很可能因为sda被占用而造成不能开机。一种解决办法是利用GPT分区特性,用UUID实现,具体可以看下面参考链接。我没有选择用这种是因为修改后虽然系统用起来正常,但总会有一些细微的毛病,加上自己并不是经常插上存储设备之类的,所以还是用的老方法。参考
- [Ubuntu 15.04 (vivid) Raspberry Pi 2 image]
- Installing Operating System Images - Raspberry Pi Documentation
- Raspberry Pi Home Server: Part 6, Adding a hard drive | MelGrubb.ToBlog()
- Circuidipity | Run a Raspberry Pi 2 from USB storage v2.0
- server - How do I change UUID of a disk to whatever I want? - Ask Ubuntu
No comments:
Post a Comment