树莓派入手,记录系统烧录,ddns动态域名,无线连接,系统备份等设置

最近新入了树莓派,老款B的升级版B+,关于树莓派,还是引用一段百科上的文字吧

enter image description here

树莓派(英语:Raspberry Pi),是一款基於Linux系統的只有一張信用卡大小的单板机電腦。它由英國的树莓派基金會所開發,目的是以低價硬體及自由軟體刺激在学校的基本的电脑科学教育。

树莓派的生产是通过有生产许可的两家公司:Element 14/Premier Farnell和RS Components。这两家公司都在网上出售树莓派。

树莓派配備一枚700MHz博通出產的ARM架構BCM2835處理器,256MB內存(B型已升级到512MB内存),使用SD卡當作儲存媒體,且擁有一個Ethernet、兩個USB接口、以及HDMI(支持聲音輸出)和RCA端子輸出支援。树莓派只有一張信用卡大小,體積大概是一個火柴盒大小,可以執行像《雷神之鎚III競技場》的遊戲和進行1080p影片的播放。操作系統採用開源的Linux系統如Debian、ArchLinux,自帶的Iceweasel、KOffice等軟體能夠滿足基本的網絡瀏覽、文字處理以及電腦學習的需要。分A、B兩种型號,售價分别是A型25美元、B型35美元。树莓派基金会从2012年2月29日开始接受B型的订货。

树莓派基金会提供了基於ARM架構的Debian、Arch Linux和Fedora……等等的发行版供大众下载,还计划提供支持Python作为主要编程语言,支持BBC BASIC(通过RISC OS映像或者Linux的”Brandy Basic”克隆)、C语言和Perl等编程语言.

关注了好久的东西,昨天终于到手,拿到手就兴冲冲开始根据官方教程安装NOOBS,紧接着进入桌面,各种体验。体验下来发现,进行某些操作比较卡,也许树莓派这个配置,目前对我来说最大的用处就是作为服务器用。

从入手到完成服务器的配置,花了一整天的时间,反复的查各种资料,这里我将自己的配置步骤记录下来,给后面要入手的人一个参考。

给树莓派安装系统

首先拿到树莓派,你要知道的是里面并没有任何系统,你需要一张读写速度较快的tf卡,并且在win或其他平台上将系统装入tf卡。

安装系统有两种方式,

NOOBS工具安装方式

这时官方推荐的安装方式,安装方法是,下载NOOBS压缩包,解压到你的tf里,插入树莓派,接上键盘鼠标,开始根据安装向导一步一步安装。这种方式比较简单,但是占用tf卡空间较大,因为采用了非原生的分区方式,运行效率也许不是最高的,只适合刚入手需要反复折腾系统的人。

TF卡直接烧录系统镜像方式

第二种方式是通过u盘镜像烧录工具将系统镜像直接烧录至tf卡,完成安装。这里我以win平台下安装raspbian来说明

首先去树莓派官网下载你需要安装的镜像,下载完成后解压,得到一个.img的镜像文件。

接着下载镜像烧录工具,网上比较推荐的有两个,分别是USB Image ToolWin32 Disk Imager,下载其中之一即可。这里我选择的是USB Image Tool。

下载完成后,运行USB Image Tool,在左侧选择需要安装系统的tf卡(不要选错了),点击Restore,选择下载的raspbian.img镜像,开始烧录。

烧录完成后,将tf卡插入树莓派,接上电源,键鼠和显示器,开机。这样安装就完成了!首先会进入到raspi-config这个设置工具的界面,这里可以设置一些树莓派系统的选项,建议修改一下默认用户PI的密码,同时设置语言选项为en_US.utf-8。

精简不需要的组件

作为桌面来说,基本上就可以按照自己的习惯正常工作了。但是作为服务器来说系统包含的X-window系统是比较占用资源的,因此需要对系统进行一定的精简。精简参考了网上的这篇文章,并做了一些修改

1
2
3
4
5
6
7
8
9
10
11
12
rm -rf python_games
sudo apt-get autoremove --purge x11-common midori lxde lxde-common lxde-core lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession-edit lxshortcut lxtask lxterminal xinit xserver-xorg xserver-xorg-video-fbdev desktop-base desktop-file-utils gnome-icon-theme gnome-themes-standard leafpad menu-xdg scratch xarchiver zenity leafpad dillo netsurf python3 python3-minimal
sudo rm -rf opt
sudo apt-get autoremove --purge `sudo dpkg --get-selections | grep -v "deinstall" | grep python | sed s/install//`
sudo apt-get autoremove --purge `sudo dpkg --get-selections | grep -v "deinstall" | grep x11 | sed s/install//`
sudo apt-get autoremove --purge `sudo dpkg --get-selections | grep -v "deinstall" | grep sound | sed s/install//`
sudo apt-get autoremove --purge gcc-4.4-base:armhf gcc-4.5-base:armhf gcc-4.6-base:armhf
sudo apt-get autoremove --purge ca-certificates libraspberrypi-doc xkb-data fonts-freefont-ttf manpages
sudo apt-get autoremove
sudo apt-get clean
cd /var/log/
sudo rm `find . -type f`

如果精简后出现语言包错误,需要重新运行raspi-config工具设置语言。

设置ddns动态域名

作为个人服务器,通过家里的网络联网,一般是没有公网IP的,所以需要设置ddns动态域名和端口映射,以便于公网访问树莓派的内容。这里ddns动态域名选用的是noip.com的DDNS免费服务(国内花生壳似乎已经不提供免费服务了)。

注册noip账户

首先进入noip.com,注册一个账户,然后选择设置ddns的免费域名,如surenkid.ddns.net。注册完成后需要进邮箱点击确认邮件,确认后账户才会生效。

设置noip客户端

首先下载编译并安装noip客户端

1
2
3
4
5
6
cd ~
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz
cd noip-2.1.9-1
sudo make
sudo make install

安装过程中会出现4次提示,

Please enter the login/email string for no-ip.com (输入你注册时填的邮箱)

Please enter the password for user (输入你注册时填的密码)

Please enter an update interval: [30] (noip客户端检查你的ip变化情况时间间隔,默认是30分钟,这里可以输入5)

Do you wish to run something at successful update? [N] (y/N) (是否希望更新ip时执行某些其他任务,一般不需要直接按回车即可)

启动noip客户端,输入以下命令

1
sudo /usr/local/bin/noip2

同时将这条命令加入/etc/rc.local(加入位置在exit 0之前),以保证下次重启时,noip客户端会自动运行。

设置无线网络开机自动连接

树莓派比较方便的地方在于,系统集成了很多usb无线网卡驱动,因此只需要插入usb无线网卡,就可被识别,无需头疼驱动的问题(话说这个问题之前在ubuntu早期版本可着实让我头疼了许久)。接下来的问题就是如何开机自动连接无线。这里我是用wpa_supplicant方式

修改wpa_supplicant的配置文件/etc/wpa_supplicant/wpa_supplicant.conf

1
2
3
4
5
6
7
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="你的无线ssid"
        psk="你的无线密码"
        priority=5
}

priority是当前设置的无线优先级,设置后保存并重启,以后开机时,该无线就会被自动连接。

备份当前系统

备份树莓派系统也有几种方法,最简单的方法是通过前面的烧录工具USB Image Tool,我们在一开始使用的restore按钮进行烧录,此时备份选择backup按钮即可导出tf卡的完整镜像。这种方法导出的镜像大小与tf卡容量相同,即使你仅仅只用了tf的一小部分空间,工具导出的依然是庞大体积的镜像,而对于不同品牌的tf卡,容量大小可能会出现细微的不一致,这样就导致导出的镜像不能恢复到其他tf卡中,给恢复带来麻烦。

通过这篇日志的方法,实现了仅备份已使用容量的内容,并导出img镜像,可以恢复至任意的tf卡,比较推荐。

挂载备份存储的U盘

我是将备份直接写入到U盘里,因此首先需要在树莓派上插入U盘,并挂载

先查看当前挂载设备

1
ls /dev/sd*

找到U盘设备,之后创建usbdisk目录,将U盘挂载到该目录

1
2
3
4
cd ~
mkdir usbdisk
sudo mount -o rw /dev/sda /home/pi/usbdisk
cd /home/pi/usbdisk

备份系统至img镜像

这样U盘成功挂载,接着查看一下当前系统已使用的容量

1
df -h

计划好容量之后,将以下步骤第一行的2500设置为你需要备份的img镜像的体积(如你的系统总共用了1G左右空间,将这里的2500改为1200即可),然后按照脚本的步骤进行即可导出备份。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=2500
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1

loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*//g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo dump -0uaf - / | sudo restore -rf -
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice

备份结束,移除U盘

这样U盘中的raspberrypi.img即为备份号的系统镜像,取消U盘挂载,并移除U盘

1
unmount /dev/sda

至此,备份完毕,接下来,既然有了备份,那就尽情的开始折腾吧。

坚持原创技术分享,您的支持将鼓励我继续创作!