安装系统

需求:

  • 树莓派一只
  • SD卡(不小于8G,SD卡速度影响系统性能,建议用 Class 10 或更高)

  首先去树莓派官网下载最新的镜像,建议新手用 RASPBIAN JESSIE。

  下载完解压,得到 img 格式的镜像文件。然后下载安装工具 Win32DiskImager。SD卡插上电脑,打开 Win32DiskImager。

点击文件夹图标选择镜像,后面选择SD卡的盘符,点击 Write 等待几分钟即可(写入时间取决于SD卡的速度),当提示 Write Successful 表示完成了。退出 Win32DiskImager,拔下SD卡,装入树莓派,开机。

初始化

  由于没有 线,所以我没有连接显示器,这就导致树莓派必须连接网线进行配置。连接网线后上路由器获得树莓派的IP(前提路由器是自动分配IP)。如果无法登陆路由器,可以用手机去下载 NetX 来扫描获得树莓派的IP。

  然后去下载安装 Xshell 5 作为 SSH 客户端(手机用 JuiceSSH )。

  打开 Xshell 5,新建会话,名称自定义、协议默认、主机填上树莓派IP、端口号默认,确定,选中会话,点击连接。(如果弹出 SSH 安全警告,点击接受)

  新系统的用户名一般都是默认 pi

  然后输入密码,一般默认是 raspberry

  这样就成功远程登陆树莓派了。

启用 root 账户

  我习惯第一件事就是启用 root。执行:

sudo passwd root

  输入两遍密码,如果提示 passwd: password updated successfully 则表示成功更改 root 密码。然后执行:

sudo passwd --unlock root

  这样 root 账户就解锁了,执行 su 并输入密码即可使用 root 用户。

  接下来是启用 root 直接登录。如果使用 vi 来编辑,不知为何键盘总是乱七八糟的,所以推荐用 WinSCP ,可以本地编辑。

  打开 WinSCP,登录树莓派。

  打开 /etc/ssh/sshd_config (千万不要用自带的记事本打开,推荐用 Notepad++),并确保右下角是 UNIXUTF-8 格式的。(新建文件打开默认是 Dos\Windows 格式,Linux 无法读取。可以在编辑-文档格式转换-转换为UNIX格式更改)

  找到:

PermitRootLogin without-password

  改成:

PermitRootLogin yes

  保存。如果提示无法覆盖,Permission denied,执行:

chmod 777 /etc/ssh/sshd_config

  重试即可,只要提示上传成功就表示已经成功,权限和时间戳没关系,跳过即可。执行下面代码重启 SSH:

service ssh restart

  在 WinSCP 和 Xshell 5 都修改成 root 用户登录即可。

更换软件源

修改软件源后仍然很慢,树莓派仍然还要从*.raspberrypi.org下载

编辑/etc/apt/sources.list文件

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

raspberry-最新stretch源

###中科大源
#deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main non-free contrib
#deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main non-free contrib
#deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
#deb-src http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
###清华源
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib

改完以后你会发现,apt下载还是会请求archive.raspberrypi.org。除了以上这些,还要注释掉/etc/apt/sources.list.d/raspi.list里所有内容。

#deb http://archive.raspberrypi.org/debian/ jessie main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main ui

重新更新并升级软件源

sudo apt update #更新源
sudo apt upgrade #更新软件包

配置树莓派

  如果你要使用中文,可以在配置之前先安装中文字体,建议使用英文的。执行:

apt-get -y install ttf-wqy-zenhei

  raspi-config 是树莓派的系统配置工具,现在执行:

raspi-config

  选择:

  • Expand Filesystem(扩展文件系统) 使树莓派充分利用整个SD卡。

  • Internationalisation Options
    

    (国际化选项)

    • Change Locale(更改语言环境) 去掉 en_GB.UTF-8 UTF-8,选择 es_US.UTF-8 UTF-8zh_CN.GBK GBKzh_CN.UTF-8 UTF-8,按 Tab 键 OK 回车,默认系统语言设置为 zh_CN.UTF-8
    • Change Timezone(更改时区) Asia-Chongqing

  <Finish>,回车,回车重启即可。

VNC

  树莓派也是有图形界面的,并且可以通过网络远程连接。安装 VNC server

apt-get -y install tightvncserver

  首先修改密码,执行:

vncpasswd

  输入两遍密码,提示 Would you like to enter a view-only password? 选择否即可。执行 vncserver 启动 VNC server。然后去下载 VNC Viewer(手机下载 VNC Viewer )。打开 VNC Viewer:

  填上: IP:端口,然后输入密码即可。

连接 WiFi

  由于我的是树莓派3代,自带蓝牙和无线,所以无需外接设备就能使用 WiFi。连接 WiFi 有两种方法:一种图形界面,用上面的 VNC 设置,太简单就不讲了;重点讲讲第二种。

  编辑 /etc/wpa_supplicant/wpa_supplicant.conf,添加:

network={
    ssid="WiFi name"
    psk="12345678"
	key_mgmt=WPA-PSK
}

  这个可以参考手机上的 /data/misc/wifi/wpa_supplicant.conf。添加完之后重启网络来连接 WiFi:

/etc/init.d/networking restart

  喔,现在可以拔掉网线到处跑了。

树莓派 配置kali linux wifi连接

1.配置WIFI,使用nano命令修改/etc/network/interfaces文件;

2.增加

auto wlan0 iface wlan0 inet dhcp wpa-ssid “your network name” wpa-psk “the network password”

##外接显示器不显示东西 在将SD卡插入Raspberry Pi之前,修改SD卡目录中的config.txt文件,内容如下:

#强制使用HDMI输出

hdmi_force_hotplug=1

#HDMI信号增强

config_hdmi_boost=4

#HDMI输出适配于计算机显示器

hdmi_group=2

#HDMI输出的分辨率及刷新频率

hdmi_mode=9

#禁止树莓派检测显示器分辨率,直接使用配置文件中制定的分辨率输出

hdmi_ignore_edid=0xa5000080

#禁止黑边

disable_overscan=1

start_x=1

gpu_mem=128

固件更新

sudo rpi-update 如果提示找不到命令,需要安装rpi-update sudo apt-get install rpi-update OK,等待固件更新完成,然后重启

安装中文输入法Fcitx及Google拼音输入法

sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin sudo apt-get install scim-pinyin

安装中文字体

sudo apt-get install ttf-wqy-microhei

无SSH情况下为树莓派配置WiFi

WiFi却没网线的地方如何控制树莓派

首先下载Win挂载EXT分区格式工具Paragon ExtFS for Windows。安装完成后需要重启才能加载驱动文件。

wget http://dl.paragon-software.com/demo/extwin_trial_en.msi

电脑上插入SD卡,这时win会识别树莓派的根文件系统。

20170115095411.png

找到/etc/wpa_supplicant/wpa_supplicant.conf,注意不要使用记事本打开,notepad++或其他编辑器都可以。

20170115095518.png

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="WiFi的名称"
    psk="WiFi密码"
}

20170115092406.png

保存之后注意退出Paragon ExtFS for Windows,安全退出SD卡后再插入树莓派上电启动。

20170115095801.png

手机上可以通过Fing扫描树莓派是否成功联网。

树莓派静态ip设置

修改*/etc/dhcpcd.conf *文件

sudo vim /etc/dhcpcd.conf

interface eth0

static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

interface wlan0

static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

上面的配置文件中 , eth0是有线的配置 , wlan0是无线配置

ip_address就是静态IP , 后面要接/24

routers是网关

static domain_name_servers是DNS

挂载 NTFS

  我的U盘是 NTFS 格式的,而挂载 NTFS 需要 NTFS-3G,写博客的时候才知道大多数系统都是自带 NTFS-3G 的,所以无需重新下载源码重新编译了,如果你的系统太老以至于没有 NTFS-3G,请自行 Google 安装方法。(检验方法:输入 ntfs 按两下 Tab 能够出现 ntfs-3g

12.png

  查看 NTFS 分区:

fdisk -l | grep NTFS

13.png

  得到 /dev/sda1,执行:

mkdir /mnt/storage
ntfs-3g /dev/sda1 /mnt/storage

  如果提示 Mount is denied because the NTFS volume is already exclusively opened.,则执行:

umount /dev/sda1
ntfs-3g /dev/sda1 /mnt/storage

  这下 NTFS 就成功挂载了,如果要开机自动挂载,就编辑 /etc/fstab,添加一行:

/dev/sda1         /mnt/storage     ntfs-3g silent,umask=0,locale=zh_CN.utf8 0 0

Aria2 一键安装管理脚本

执行下面的代码下载并运行脚本。

wget -N --no-check-certificate https://softs.fun/Bash/aria2.sh && chmod +x aria2.sh && bash aria2.sh # 如果上面这个脚本无法下载,尝试使用备用下载:wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

安装Transmisson实现下载功能

安装好树莓派OS之后,使用SmarTTY登陆树莓派。

更新树莓派: sudo apt-get install update 安装transmission: sudo apt-get install transmission-daemon 给用户授权: sudo usermod -a -G pi debian-transmission 设置Transmission的配置文件: sudo vim /etc/transmission-daemon/settings.json

{
    "alt-speed-down": 15,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 15,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": true,
    "blocklist-url": "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/home/pi/Downloads",
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/home/pi/Downloads",
    "incomplete-dir-enabled": true,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "prefetch-enabled": 1,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "raspberry",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "transmission",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": true,
    "umask": 0,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}

在这个配置文件中有很多可以更改的选项,对应着上面的配置文件说几个重点的部分,方便理解和自行修改。 blocklist参考了techjawab的github"blocklist-url": "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz", 设置下载目录为用户目录下的Downloads文件夹: "download-dir": "/home/pi/Downloads", 设置未下载完成数据存放地点为Downloads文件夹: "incomplete-dir": "/home/pi/Downloads", 设置Web登陆密码为:raspberry "rpc-password": "raspberry", 设置Web登陆用户名:transmission "rpc-username": "transmission", 允许Web登陆:(设置为true) "utp-enabled": true 设置完成之后,保存setting.json文件,重新启动transmission服务: sudo service transmission-daemon reload

到这里可以在浏览器中输入你的树莓派的ip地址和端口号放完transmission的web界面了,比如你的树莓派地址是:192.168.1.10,那么在浏览器中输入: 192.168.1.10:9091 登陆的用户名和密码使用配置文件中设置的内容,例子中的用户名是:transmission,密码是:raspberry。

如果遇到permission问题,按照文中的下载地址,使用以下命令提升Downloads目录的权限: sudo chmod 777 -R /home/pi/Downloads/

登陆到Web界面之后,点击左上角的文件夹图标可以添加种子文件,树莓派就会开始下载了。

img

树莓派启用BBR加速

启用bbr

sudo sysctl net.ipv4.tcp_congestion_control=bbr

查看bbr模块是否加载

lsmod | grep bbr

img

一个不靠谱的测试

简单的测试了一下bbr的性能,在严重干扰的wifi网络下进行100M文件传输,传输方式为sftp

拥塞控制为cubic的速度

img

拥塞控制为bbr的速度

img

虽然这个测试不严谨,截图也只是个人估计出的平均速度。评测终归评测,真正的性能提升还得实际体验来证明。

附带一份github上网友实测记录

img

144P到1080P的提升已经相当惊艳了

自搭Ngrok实现树莓派内网穿透

如果把花生壳类比为使用别人搭好的ss服务,那么自建Ngrok就是使用自己的ss服务,可见自搭Ngrok的优势不言而喻,流量费用十分经济,速度,稳定性和安全性将远远胜过花生壳。

现在花生壳是一种比较流行的穿透内网的方式,不过其稳定性随着使用人数的增多而大打折扣,内网穿透的价格也不便宜,一套花生棒就是动轭上百,而且流量还要单独买,如果遭遇流量攻击套餐基本就泡汤了。

Ngrok编译部署条件:

  • 域名 (.top域名4元首年)
  • 拥有独立IP的VPS或云主机 (标准配置低于50一年)

编译Ngrok客户端时会使用openssl生成证书来加密通讯,保证了安全性,使用时必须和签署证书时的域名吻合。

一个拥有独立IP的VPS或云主机,地区的话推荐选择 香港国外的,配置可以参考 搭建ss服务的标准,其对 延迟带宽速度的要求高于内存和CPU。(这里我用的只是openvzcc年付35元的vps,当然这个配置还不是最低价的)

使用国内云主机的话第一个是要考虑域名备案,因为一般反向代理网页时使用了服务器的80端口。第二个是国内符合配置条件的vps比较少,因为没人直接拿国内的服务器番茄,市场的需求催生了国外VPS低内存高带宽而且非常优惠的配置。

编译环境:腾讯云上海节点CentOS 6.7 部署环境:阿里云青岛节点CentOS 6.7+OpenVZCC洛杉矶节点CentOS 6

也可以选择在本地编译好客户端然后部署在服务器上

编译Ngrok

配置科学上网环境(香港或国外主机可省略此步骤)

由于编译过程中会导入包的网址,而这些网址基本都被墙了。

方法不用多说了,这里我图方便采取修改hosts的方法(有点low),最新的hosts文件可以在老D博客获取。

vim /etc/hosts

安装Go语言环境

安装必要包

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ build-essential  mercurial

由于Go官方地址也被墙了,这里使用国内镜像下载源码。

wget http://www.golangtc.com/static/go/1.7rc6/go1.7rc6.linux-386.tar.gz
tar -zxvf go1.7.6.linux-386.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/* /usr/bin/

安装成功后查看可Go编译环境

go env

升级Git版本

Go编译过程中要求高版本的git,而yum源里面默认只有1.7.1版本。

#原版kernel.org国内访问过慢,替换为中科大源
wget http://mirrors.ustc.edu.cn/kernel.org/software/scm/git/git-2.9.3.tar.gz
#wget https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/ngrok/git-2.6.0.tar.gz
#wget https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/ngrok/git-2.9.3.tar.gz
tar zxvf git-2.9.3.tar.gz
cd git-2.9.3
./configure --prefix=/usr/local/git-2.9.3
make
make install

取代yum安装的低版本git

yum remove git*
ln -s /usr/local/git-2.9.3/bin/* /usr/bin/

检查git版本是否为2.9.3

git --version

Ngrok源码配置

声明编译的路径和必要的域名(域名改成你自己的)

#这是原版代码,编译过程会从github下载依赖包,国内网络坏境基本无解
#git clone https://github.com/inconshreveable/ngrok.git ~/ngrok

#推荐直接下载完整包,一次性编译无需下载
wget https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/ngrok/ngrok.zip
unzip ngrok.zip
export GOPATH=~/ngrok/
export NGROK_DOMAIN="ngrok.sfantree.com"
cd ~/ngrok

生成证书,Ngrok会使用此证书加密通讯

openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

将证书文件复制到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt -i
cp server.crt assets/server/tls/snakeoil.crt -i
cp server.key assets/server/tls/snakeoil.key -i

编译服务器端与客户端

服务器端为linux-x86-64

export GOOS=linux 
export GOARCH=386
make release-server

编译完成过后~/ngrok/bin/ngrokd即为服务端运行文件

树莓派为linux-arm架构,重新声明go env里的变量

export GOOS=linux 
export GOARCH=arm
make release-client

编译完成过后~/ngrok/bin/linux_arm/ngrok即为树莓派客户端运行文件

注:这里测试时只编译了i386的服务器端和arm的客户端,实际上可以通过改变GOOSGOARCH来获取各个平台的客户端与服务端,GOOS可以指定为windowslinuxfreebsddarwin (Mac OS X 10.5 or 10.6) 和 nacl(Chrome 的Native Client 接口) ,GOARCH可以指定为amd64 (64-bit x86) 、386 (32-bit x86) 、 和arm (32-bit ARM),可见Go语言的跨平台能力相当彪悍。

lnmp全面优化集合nginx+mysql+php

lnmp的全名是linux+nginx+mysql+php,既然是全面优化那我们就从linux系统的选择入手。debian系统可以算是 linux各分支中做的比较突出的一类,连谷歌都抛弃linux订制,由此可见debian系统之优秀,相较其它linux系统debian具有稳定、占 用资源少对于网站web环境来说这些正是我们所需要的,其中debian6版本算是这一优点的集中体现。目前市面上有很多的安装包,其中军哥的lnmp是 被站长使用较多的一种。

也许有朋友会问小三啊,为啥不用lanmp呢?
参考:lnmp和lnmpa性能测试
用nginx的目地是为提高并发能力。
在同一台机器上使用nginx反向 apache,等于脱裤子放屁。+_+*

一:lnmp的nginx优化 主要是修改 /usr/local/nginx/conf/nginx.conf 1.军哥的lnmp安装包中nginx的worker_processes默认设置是1,这里我们要根据服务器cpu具体的核心数来优化。通常4核的CPU我会把值设为3。

2核CPU,开启2个进程
worker_processes 2;
worker_cpu_affinity 01 10;

4核CPU,开3个进程
worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

8核CPU,开8个进程
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

worker_processes参数解析可参考:worker_processes详解

2.worker_rlimit_nofile参数默认是5xxxx.

worker_rlimit_nofile 65535;

events
	{
		use epoll;
		worker_connections 32700;
	}

worker_rlimit_nofile参数讲解可参考:nginx优化参数详解

添加防压力测试 if ($http_user_agent ~ ApacheBench|WebBench|Jmeter|must-revalidate|Havij) {retun 503;} 添加针对CVE-2013-4547链接空格的补丁 if ($request_uri ~ " “) {return 444;}

二:lnmp的mysql优化

用/usr/local/mysql/share/mysql/目录下的my-large.cnf 文件替换根目录etc下的my.cnf文件

my-huge.cnf: 适合1GB - 2GB RAM主机使用 my-large.cnf: 适合 512MB RAM使用 my-medium.cnf: 只有 32MB - 64MB RAM使用 my-small.cnf:小于64MB 用,MySQL会占用很少资源 my-innodb-heavy-4G.cnf 适合4G以上使用

禁用mysql日志:
修改 /etc/my.cnf 文件
在log-bin=mysql-bin和binlog_format=mixed 
这两行前面加#注释掉即可。

在query_cache_size= 16M下面添加一行:
tmp_table_size = 200M

mysql参数讲解可参考:mysql优化三:lnmp的php相关参数优化 优化主要是修改/usr/local/php/etc/目录下的php-fpm.conf和php.ini文件

1.php-fpm.conf参数优化

删除value name=“display_errors” 这一行的代码,防止坏人从PHP错误中找到漏洞。

max_children默认参数是开启5个进程。数值要根据内存大小来定,每一个php-cgi所耗费的内存在20M左右。

126M内存默认即可
256M 10个
512M 20个
1G 40个

request_terminate_timeout参数默认是0s,修改为300s

rlimit_files参数默认5xxxx,修改为65535

php-fpm参数讲解可参考:php-fpm详解

2.php.ini参数优化

disable_functions = 默认禁用了一些参数,PHP中有一些函数的风险性还是相当大的,如果允许这些函数执行,当PHP 程序出现漏洞时,损失是非常严重的

fsockopen这个参数用的比较多,可以删除。

另外从安全方面考虑可隐藏PHP版本号
将文件里面的 expose_php = On 
修改为 expose_php = Off 即可

将display_errors =On改为Off

最后修改最大连接数使重启后也可生效,在/etc/profile 最后增加一行 ulimit -SHn 65535

另外LNMP安装包里有一个eAccelerator的安装文件。最好装一下。这个是加速PHP缓存的还不错。 关于eAccelerator的设置我就给出两个修改的地方吧:

eaccelerator.shm_size="16" 

#默认是占用16M共享内存,军哥好像是1,你就改成16吧。大小也可根据你的内存情况设置。

另外默认是eaccelerator缓存目录是/usr/local/eaccelerator_cache,这样用硬盘缓存的话,某些情况会影响php的响应时间。我们可以直接放到共享内存里面老。 运行命令:mkdir -p /dev/shm/eaccelerator_cache 修改目录为以下就OK了。

eaccelerator.cache_dir="/dev/shm/eaccelerator_cache"

最后全部修改完记得重启生效:/root/lnmp restart

树莓派系统备份

备份SD卡

使用 dd 命令可以直接备份SD卡。这里树莓派的SD卡的路径是 /dev/sdc1 和 /dev/sdc2 ,所以备份整个SD卡的路径就是 /dev/sdc。

输入备份命令:

$ sudo dd if=/dev/sdb|gzip>/home/netsafe/rasp/raspberry.gz

其中备份文件要保存的位置、文件名和 SD卡的路径要根据实际选择。

这个命令可以在备份的同时压缩镜像大小,压缩完成后镜像有6.7G.

还原系统

备份完成后,如果需要还原树莓派,我们可以通过以下方法进行。

方法一:

在windows环境下,将备份文件解压,然后使用 win32diskimager 将备份文件写入到新的SD卡。

方法二:

在linux环境下,使用以下步骤将备份文件写入到SD卡。

1、删除SD卡分区。

使用 fdisk 命令对SD卡格式化2、写入备份文件

$ sudo gzip -dc /home/netsafe/rasp/raspberry.gz| sudo dd of=/dev/sdb

*其中备份文件的位置、文件名和 SD卡的路径要根据实际选择。*这样就将备份还原到树莓派了,可以将SD卡插入树莓派启动!

U盘安装树莓派系统,利用U盘启动Raspberry

树莓派的系统一般是安装在SD卡上,但是SD卡比较脆弱,如果频繁的读写数据,会导致SD卡损坏。SD卡的读写速度也比U盘慢。如果我们将树莓派系统安装在U盘中,利用更加强壮、速度更快的U盘启动树莓派,则可以解决使用SD卡遇到的问题。

以下是U盘安装树莓派系统,利用U盘启动Raspberry的教程。

一、准备条件

  • 树莓派一台
  • SD卡一个,容量不用太大,但必须大于128M.
  • U盘一个,8G以上
  • 树莓派系统镜像

二、安装系统

将树莓派系统写入到U盘中,方法和写入SD卡的方法一样,windows下可以使用win32diskimager(镜像写U盘工具)将系统写入。

格式化SD卡,然后将写好系统的U盘下的内容全部复制到SD卡根目录中。

修改SD卡根目录下的 cmdline.txt 文件。因为U盘现在有2个分区,一个是boot(/dev/sda1)分区,另一个才是root(/dev/sda2)分区。 将root=/dev/mmcblk0p2修改为root=/dev/sda2

然后,将U盘和SD卡同时插到树莓派上,上电就可以将树莓派从U盘启动了。

启动后可以感受到,树莓派的运行速度快了许多,这是因为我们使用了速度更快的U盘安装系统。

三、扩展U盘空间

U盘安装完系统后,发现虽然我的U盘是32G大小的,但是使用df命令可以看到只有4G大小,使用sudo raspi-config扩展,提示不能自动扩展:

sda2 is not an SD card. Don't know how to expand

img

这时需要使用fdisk命令手动扩展空间,信息过程如下。带有注释的行是需要输入的信息。

pi@raspberrypi:~ $ **sudo fdisk /dev/sda    #扩展分区**

Welcome to fdisk (util-linux 2.25.2).  
Changes will remain in memory only, until you decide to write them.  
Be careful before using the write command.


Command (m for help): p    #查看现有分区  
Disk /dev/sda: 28.7 GiB, 30752000000 bytes, 60062500 sectors  
Units: sectors of 1 * 512 = 512 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disklabel type: dos  
Disk identifier: 0x2d52e4bb

Device     Boot  Start      End  Sectors  Size Id Type  
/dev/sda1         8192   137215   129024   63M  c W95 FAT32 (LBA)
/dev/sda2       137216 60062499 59925284 28.6G 83 Linux


Command (m for help): d    #删除分区2  
Partition number (1,2, default 2): 2    #选择要删除的分区号

Partition 2 has been deleted.

Command (m for help): n        #新建分区  
Partition type  
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p    #选择p,即为主分区  
Partition number (2-4, default 2): 2    #选择要新建的分区号  
First sector (2048-60062499, default 2048): 137216    #输入删除分区前/dev/sda2的起始磁盘柱  
Last sector, +sectors or +size{K,M,G,T,P} (137216-60062499, default 60062499): #默认即可

Created a new partition 2 of type 'Linux' and of size 28.6 GiB.

Command (m for help): p    #查看修改后的分区  
Disk /dev/sda: 28.7 GiB, 30752000000 bytes, 60062500 sectors  
Units: sectors of 1 * 512 = 512 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disklabel type: dos  
Disk identifier: 0x2d52e4bb

Device     Boot  Start      End  Sectors  Size Id Type  
/dev/sda1         8192   137215   129024   63M  c W95 FAT32 (LBA)
/dev/sda2       137216 60062499 59925284 28.6G 83 Linux


Command (m for help): wq    #保存退出  
The partition table has been altered.  
Calling ioctl() to re-read partition table.  
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

然后重启系统 sudo reboot

重启完成后,使用 sudo resize2fs /dev/sda2 命令进行实际的空间拓展,等待命令执行完成,再次重启系统,即完成了U盘空间的拓展。

img