Lexsion 发布的文章

[译]在CentOS7上安装Mumble的服务器端

在CentOS7上安装Mumble的服务器端

前言

最近研究了一下Mumble,使用Mumble能建立加密的语音通信。不敢独享,特翻译官方wiki文档Installation of murmur server on CentOS 7 (RHEL 7) using the static mumble server.如下。


正文:

在CentOS7上安装Mumble的服务器端murmur


在CentOS7(RHEL7)上使用static mumble server安装包配置murmur 服务端

目录

1 安装

2 系统配置

  • 2.1 配置Murmur.ini文件
  • 2.2 允许作为后台进程运行
  • 2.3 配置日志滚动
  • 2.4 防火墙
  • 2.5 SELinux
  • 2.6 完成并启动

安装

下载Static Murmur Server,然后运行以下命令安装:

tar -vxjf ./murmur-static_x86-1.2.8.tar.bz2
sudo mkdir /usr/local/murmur
sudo cp -r ./murmur-static_x86-1.2.8/* /usr/local/murmur/
sudo cp ./murmur-static_x86-1.2.8/murmur.ini /etc/murmur.ini

现在创建murmur用户和组,以及数据目录和日志记录目录:

sudo groupadd -r murmur
sudo useradd -r -g murmur -m -d /var/lib/murmur -s /sbin/nologin murmur
sudo mkdir /var/log/murmur
sudo chown murmur:murmur /var/log/murmur
sudo chmod 0770 /var/log/murmur

系统配置

Murmur.ini

确保在/etc/murmur.ini文件中正确配置了以下设置:

database=/var/lib/murmur/murmur.sqlite
logfile=/var/log/murmur/murmur.log
pidfile=/var/run/murmur/murmur.pid
# Reminder: When changing the port that murmur will listen to you will need to also update the firewall.
# Update the firewall by editing /etc/firewalld/services/murmur.xml
# Then run "sudo firewall-cmd --reload"
port=64738
# Comment out the following setting since the service will already be executing as the correct user:
# uname=murmur

允许作为后台进程运行

创建一个 systemd unit 文件,以便操作系统可以管理murmur服务。 使用您的文本编辑器,创建文件'/etc/systemd/system/murmur.service'(需要root权限)。 复制并粘贴以下内容:

[Unit]
Description=Mumble Server (Murmur)
Requires=network-online.target
After=network-online.target mariadb.service time-sync.target

[Service]
User=murmur
Type=forking
ExecStart=/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini
PIDFile=/var/run/murmur/murmur.pid
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

在新系统上 /var/run 在重启后被丢弃。 要重新生成murmur的pid目录,请以root身份创建配置文件 “/etc/tmpfiles.d/murmur.conf” 并复制粘贴以下内容:

d /var/run/murmur 775 murmur murmur

配置日志滚动

配置logrotate,以致murmur的日志不填满 /var/log 。 以root身份创建 '/etc/logrotate.d/murmur' 配置文件并复制并粘贴以下内容:

/var/log/murmur/*log {
    su murmur murmur
    dateext
    rotate 4
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload murmur.service > /dev/null 2>/dev/null || true
    endscript
}

防火墙

配置firewalld以便它允许服务侦听 TCP/UDP 。如果您修改了murmur.ini以便它侦听非默认端口,那么您在此步骤需要修改对应端口以适配您对murmur.ini的修改。 以root用户身份创建配置文件'/etc/firewalld/services/murmur.xml'并复制粘贴以下内容:

<?xml version="1.0" encoding="utf-8"?>
<service>
        <short>Murmur</short>
        <description>Mumble Server (Murmur)</description>
        <port protocol="tcp" port="64738" /><!-- Reminder: Update /etc/murmur.ini so that it uses the same ports -->
        <port protocol="udp" port="64738" />
</service>

然后运行以下命令将防火墙规则添加到默认区域,并重新加载:

sudo firewall-cmd --permanent --add-service=murmur
sudo firewall-cmd --reload

SELinux

注意:请先尝试在SELinux强制模式下运行murmur。在RHEL或CentOS 7.2以上系统中,SELinux似乎不再阻止murmur的运行 。 如有异常,请在'/var/log/audit/audit.log'中检查与murmur相关的AVC条目。

注意:此处列出的步骤可能会使安全人士感到畏缩。 如果有人有时间和耐心解决SELinux,请考虑使用适当的解决方案更新本文档。

SELinux默认会阻止murmur正常运作。 快速简便的解决方案是简单地禁用它。 要暂时禁用(直到下次重新启动),请运行以下命令:

sudo setenforce 0

要永久禁用(在下次重启后),请编辑 '/etc/sysconfig/selinux' 并将“SELINUX”行更改为:

SELINUX=disabled

完成并运行

更新您的系统配置,以便它可以启动 murmur 服务:

sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload

要暂时启动 murmur 服务(直到下次重启),请运行:

sudo systemctl start murmur.service

告诉系统自动启动murmur服务(这不会立即运行murmur,而是在下次重启时启动):

sudo systemctl enable murmur.service

警告:如果在启动Murmur时遇到僵尸进程(zombie process),则必须安装redhat-lsb-core软件包。

参考链接:

Install CentOS7-wiki.mumble.info

Installing Mumble-wiki.mumble.info

[译]获取Comodo免费邮件证书

[译]获取Comodo免费邮件证书

前言

  最近因需要找一款免费的邮件证书,用来签名word文档,以此保证文档没有被修改。又恰好学习通过Mumble搭建语音聊天服务,在官方wiki中看到这篇名为《Obtaining a Comodo Certificate》的文档。文中提到的Comodo S/MIME email certificate证书可以用来为word文档签名,为邮件加密等。感觉本文非常实用,特翻译。

原文链接
https://www.instantssl.com/ssl-certificate-products/free-email-certificate.html

正文

获取Comodo证书

  本文介绍了获取用户证书的过程。证书将代表用户拥有他指定的电子邮件地址的信任。

  服务端使用不同种类的证书来进行认证。 如果您正在寻找服务器证书,本指南不适合您。

使用Internet Explorer从Comodo(Instantssl)获取Class 1证书

注意:
使用Chrome / Safari(基于webkit)获取证书似乎最初的操作可以正常进行,但最终会得到一个不完整的证书包! 考虑使用其他浏览器替代。

译注:本人使用Internet Explorer11导出的证书也不能正常工作,但是使用Firefox导出的证书可正常使用,推荐使用Firefox浏览器进行操作

Comodo支持通过IE,Firefox,Opera和Flock等浏览器获取证书。

  1:请访问http://www.instantssl.com/ssl-certificate-products/free-email-certificate.html
  2:点击“Free Email Certificate”旁边的“GET NOW”按钮。

  3:填入你的信息。

译注:网页中的First Name项中填入名字,Last Name项内填入姓,Email Address中填入电子邮箱地址(重要信息,证书与电邮地址绑定,必须正确),Country下拉菜单中选择国家,比如选择China。

译注:Private Key Options下方的设置中,Revocation Passwrod处需要设置一个密码,其用于保障在您认为证书失去安全性时,可以通过这个密码保证只有您有权吊销证书。

  4:填写完毕后勾选“ I ACCEPT the terms of this Subscriber Agreement. ”,点击"NEXT>"按钮继续。网页会提醒后续具体的证书获取已经发送到您设置的邮箱中了。

  5:等待确认邮件送达您的邮箱中。

  6:按照邮件中的说明(或转到此链接)。

  7:输入您的电子邮件地址和邮件中提供的Collection Password。

  8:这样证书将被成功收集并安装到浏览器中。

  将证书导出到文件:

  9:导出证书到文件:

导出证书(Internet Explorer 8)

  打开“工具” - >“Internet选项” - >“内容” - >“证书” - >“个人”,然后从列表中找到并选定您的证书。如果这是您的第一个证书,它将以名称“UTN-USERFirst-Client Authentication and Email”的形式列出。单击“导出” - >“下一步” - >“是,导出私钥” - >“下一步” - >“下一步”。设置文件密码,然后单击“下一步”,设置此备份文件的名称并将其保存在已知的位置。

导出证书(Firefox 3.5)

  选择“首选项” - >“高级” - >“加密” - >“查看证书”,选择“您的证书”选项卡,然后从列表中找到您的证书。证书将以“UTN-USERFirst-Client Authentication and Email”作为名称列出。选择证书并单击“备份”,选择此备份文件的名称,提供密码并将其保存在已知位置。

导出证书(Opera 10.10)

  选择“工具” - >“首选项” - >“高级”(选项卡) - >“安全” - >“管理证书”(按钮) - >“个人”(选项卡)选择您的证书并单击“导出”(按钮) 。

译注:导出证书(Firefox 64.0)

  选择“选项” - >“隐私与安全” - >“证书” - >“查看证书”,选择“您的证书”选项卡,然后从列表中找到您的证书。证书将以“UTN-USERFirst-Client Authentication and Email”作为名称列出。选择证书并单击“备份”,选择此备份文件的名称,设置密码并将其保存在已知位置。

将证书从文件导入Mumble

  1:选择 “配置” -> “证书向导”;

  2:选择“导入证书”,点击下一步;

  3:点击“导入自”后的“打开”,找到并选择证书文件。 它应以.p12或.pfx结尾,具体取决于导出证书的浏览器。

  4:输入您导出时设置的证书密码;

  5:现在证书详细信息应该会显示在下方。确认它是正确的证书,点击下一步;

  6:按“下一步”确认您要更换证书;

  7:搞定! 按完成关闭本向导。

安装证书后无法连接服务器

  如果您安装证书后无法连接并且服务器日志中出现以下记录:“SSL Error: The root CA certificate is not trusted for this purpose(SSL错误:根CA CA证书不可信任)”,这通常是由于导出的证书包不完整造成的。

  请尝试使用Firefox浏览器重新获取证书,并导出证书。 已知问题,Chrome和Safari会创建不完整的证书包。

译文结束

参考资料

1:Obtaining a Comodo Certificate

https://wiki.mumble.info/wiki/Obtaining_a_Comodo_Certificate

2:Free Email Certificates

https://www.instantssl.com/ssl-certificate-products/free-email-certificate.html

3:S/MIME

https://zh.wikipedia.org/wiki/S/MIME

DSM系统损坏后通过电脑恢复数据

DSM系统损坏后通过电脑恢复数据

前言

最近几天天冷,大家都开着空调,结果电流过大导致跳闸,群辉异常断电,再次尝试启动,发现无法启动,拆出硬盘挂到Windows下发现磁盘分区正常,判断应该是DSM系统坏。

技能

1:计算机硬件维护技术,硬盘拆装
2:基本Linux操作

处理过程:

群辉中拆出的硬盘挂到Windows系统下是无法直接读取的,像我的这个,群辉的DSM使用的文件系统是Ext4,其在Windows下是不可直接识别的。且其使用了RAID阵列技术,尝试在Windows下读取更是困难。于是我们需要一个Linux环境,手里正有一台运行Ubuntu16的电脑,群辉官网的帮助文档也是使用的Ubuntu。

1:将群辉中拆出的硬盘连接到Ubuntu环境的电脑,如果有多块硬盘组成RAID阵列,需要将所有硬盘挂载,具体硬件连接方案自行确定。
2:打开系统自带的磁盘应用,查看是否有显示插入的硬盘,确认硬盘被识别。
3:此时打开“文件”查看是否有文件系统被直接挂载,可以访问。如有,那就不必继续看下去,直接复制出数据即可。
4:运行终端(英文系统下为Terminal),在终端中使用以下命令安装mdadm:

sudo -i
apt-get install mdadm

5:使用以下命令安装lvm2以保证vgchange正常运作:

apt-get install lvm2

6:运行以下命令覆盖常规检查重建RAID阵列:

mdadm -Asf

7:运行以下命令挂载所有已知的卷到系统:

vgchange -ay

8:此时应能在系统自带的“文件”中看到新挂载的卷,打开便能看到所有文件,接下来就是自行复制出需要的数据了。

结束操作

数据复制完后我们需要移除设备,直接关机,拆出硬盘是最快捷方便的办法。或可按如下操作:
1:在“文件”中点击对应的弹出按钮;或到“磁盘”中选择对应的块设备,点击卸载所选分区。
2:运行以下命令卸载所有的vg卷:

vgchange -an

3:运行以下命令查看所有RAID状态,用以确认我们要卸载的RAID设备名:

cat /proc/mdstat

4:通过以上命令我得知我的RAID设备为md2,运行以下命令可以查看这个RAID设备的状态,通过获取到的信息可以确认是否是要操作的设备:

mdadm -D /dev/md2

5:运行以下命令确认卸载md2:

umount /dev/md2

6:运行以下命令停止这个RAID:

mdadm -S /dev/md2

7:然后我们可以去“磁盘”中选定对应磁盘,点击关闭此硬盘,这时我们便可以安全的拔下硬盘了。

参考:

1:我如何使用计算机来还原存储在 DiskStation 中的数据?
https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/Storage/How_can_I_recover_data_from_my_DiskStation_using_a_PC
2:如何在Linux 下面挂载LVM2分区
https://wenku.baidu.com/view/119cf83ef5335a8103d22009.html
3:mdadm详细使用手册
https://blog.csdn.net/a7320760/article/details/10442715
4:linux安全移除USB设备
http://blog.sina.com.cn/s/blog_60cbc1700100nsy0.html
5:mdadm彻底删除software RAID
https://blog.csdn.net/chenyouxu/article/details/47415985
6:软RAID管理命令mdadm详解
http://www.toxingwang.com/linux-unix/linux-basic/1048.html

OpenVZ架构VPS安装SoftEtherVPN实现搭建L2TP协议VPN服务

OpenVZ架构VPS安装SoftEtherVPN实现搭建L2TP协议VPN服务

前言:

  在某些情况下,我们可能需要部署一个VPN,来实现某些网络应用。部署VPN的方案有很多种,比较廉价的方案是选择一个运行Linux系统的,OpenVZ架构的虚拟服务器(VPS),然后在上面运行SoftEther VPN Server。
  SoftEther VPN 是日本筑波大学的一个研究项目。其包含服务端,客户端,服务端管理工具等软件。其服务端目前支持包括Windows、Linux,FreeBSD,MAC OS X等多种操作系统,其Linux版本对包括X86、ARM,MIPS等多种硬件架构均有支持,这表明它甚至可以运行在某些路由器上。其支持L2TP over IPsec 协议、 OpenVPN 协议和 MS-SSTP 协议,在Windows、Linux、Android和IOS等系统下都可以连接到SoftEther VPN服务器。SoftEther VPN服务端安装非常方便,且后期配置时可在Windows系统下安装管理工具通过图形界面来进行服务端配置。

读懂实践本文,你可能需要在技能树中点亮以下技能:

  1:基本的Windows系统与Linux系统操作技能;

准备:

  1:一台运行Windows系统的计算机;
  2:运行Linux系统的VPS(我的是运行的CentOS);
  3:SSH客户端,我用的是Putty.

操作过程:

登录VPS:

  1,打开SSH客户端,此处以Putty为例;
  2,在HostName(or IP address)下填入VPS的IP地址,在Port填入SSH服务的端口,Connection type下选择SSH;
  3,可在下方的Saved Sessions下的文本框中填入一个友好的名字,点击Save保存,以方便下次连接,下次连接时只需选择对应名字,然后点击Load即可。
  4,点击Open开始连接,连接成功后会提示login as:在此输入VPS提供商提供的用户名,一般为root;按Enter键确认,会出现用户名@IP地址 's password:信息提示输入密码,输入VPS提供商提供的密码,按Enter键确认密码完成登录。需要注意的是Linux系统安全限制,密码输入时不会有任何内容甚至占位符出现。

寻找服务端安装文件并安装:

  1,浏览器访问:https://www.softether-download.com/cn.aspx 地址,产品选项中选择SoftEther VPN(Freeware),组件选项选择SoftEther VPN Server,系统选择Linux,CPU自行根据VPS配置选择,下方会出现可供下载的资料,右键复制需要的Server安装文件包地址,在前面加上wget空格,类似如下格式:

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.28-9669-beta/softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz

  2,解压文件,命令为tar zxvf后面接文件名,类似如下格式:

tar zxvf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz

  3,待所有显示的文件处理完毕,进入刚解压出的vpnserver文件夹,运行make若出现交互信息,请跳至第5条.
  4,若运行make失败,提示命令未找到,应该是没有安装make造成的,尝试运行以下命令安装:

yum -y install gcc automake autoconf libtool make

  待安装完成后,重新运行make命令。
  若出现"grep" command not found.提示,则尝试运行yum install grep,若提示grep已经存在,则尝试使用yum安装wherewhich后再尝试运行make.
  5,首先看到的是询问是否愿意查看许可条款,选择1表示需要;然后会显示出许可条款并要求你选择是否看完并理解条款,选择1表示是;最后询问是否同意,输入1选择同意。然后会开始创建可执行程序。
  6,待创建完成后,可使用以下命令开关服务。

./vpnserver start      //开始服务
./vpuserver stop       //停止服务

下载管理工具完成配置

  1,浏览器访问:https://www.softether-download.com/cn.aspx 地址,产品选项中选择SoftEther VPN(Freeware),组件选项选择SoftEther VPN Server Manager for Windows,系统选择Windows(.zip package with out installers);下方选择需要的文件版本下载。
  2,解压下载的软件包,运行vpnsmgr.exe,在出现的界面选择新设置,填入VPS的IP信息,尝试连接,第一次连接会要求你设置管理密码,自行设置即可。
  3,设置密码后进入管理页面,自动弹出配置向导,可直接跟随设置向导,设置自己喜欢的虚拟HUB名称,选择远程访问VPN Server,然后在自动弹出的L2TP配置页面勾选两种L2TP协议,设置好预共享密钥,点击确认后进入主管理页面。
  4,单击需要管理的HUB选定,单击管理虚拟HUB,会出现虚拟HUB管理页面。点击虚拟NAT和虚拟DHCP服务器按钮。
  5,在出现的设置窗口中点击启用SecureNAT,点击后会出现一个警告框,其提醒内容对于非专业人员过于专业化,容易让人打退堂鼓。但是想要正常连接VPN服务,必须点击确定开启本功能,不打开会导致客户端无法获取IP地址而连接失败。
  6,点击管理用户按钮添加用户帐号,设置用户名和密码,点击确定后正常就可以尝试连接了。

客户端连接

此处以Windows7为例:
  1,打开控制面板,点击网络和共享中心,点击设置新的连接或网络;
  2,在弹出的连接向导中选择“连接到工作区”,点击下一步,选择“否,创建新连接”,点击下一步,选择“使用我的Internet连接(VPN)”,Internet地址中填入VPS的地址,目标名称中自行起一个便于分辨的名字,点击下一步,输入用户名和密码,按需求自行确认是否勾选记住密码,点击连接。
  3,此时正常会提示连接失败,错误代码800,点击仍然设置。
  4,回到网络和共享中心窗口,点击更改适配器设置,在刚才设置的VPN连接上右击,点击属性,选择安全选项卡。
  5,在安全选项卡中,VPN类型改为:使用IPsec的第二层隧道协议,点击高级设置,选择使用预共享的密钥做身份验证,将之前设置的预共享密钥填入密钥框中,点击确定。点击确定关闭属性窗口。点击任务栏通知区域的网络图标,选择刚才设置的VPN连接,点击连接即可正常使用。

参考:

1,Install on Linux and Initial Configurations-softether.org
https://www.softether.org/4-docs/1-manual/7._Installing_SoftEther_VPN_Server/7.3_Install_on_Linux_and_Initial_Configurations
2,SoftEther下载中心
https://www.softether-download.com/cn.aspx

乐视路由器LBA-047-CH免拆机原厂系统开启SSH、备份固件、刷入breed

乐视路由器LBA-047-CH免拆机原厂系统开启SSH、备份固件、刷入breed

前言

这款乐视路由器虽然配置很低,处理器为QCA9531,RAM为128M,ROM为16M,2.4G频段300M无线,没有5G,1WAN口,2LAN口。但是今年双十一,乐视官网活动价19.9元,价格超级低,而且据说买五个可以包邮,看到好多网友们都买了,于是我也买了一只用于研究。虽说经历过斐讯的各位网友可能觉得没什么购买欲,但这个路由器性价比还是蛮高的。本文主要讲该路由器如何开启SSH。

读懂并实践本文,你可能需要在技能树中点亮以下技能:

1:基本的Windows系统与Linux系统操作;
2:基本的路由器组网知识;

操作警告:

修改路由器的设置,尤其是原厂固件设置界面未显示的设置项,可能会因此损坏您的路由器系统,甚至损坏设备硬件,所以请务必小心操作!学习本文需要您自担风险,本人不对您路由器可能发生的损坏负责。

软件和硬件准备:

学习本文体验这个工具需要做如下准备:
1:LBA-047-CH路由器一台(废话),本人手里这台固件版本为5.0.016S,其他版本未测试,请自行测试。
2:网线*2,不连接上级网络,1根网线就够。机器原包装只有电源适配器,没网线。
3:电脑一台,我的电脑上用的是Windows系统。
4:SSH客户端,我用的是Putty.
5:网页浏览器软件。
6: 可能需要Internet. 其实无Internet也可以。

开启SSH:

1:使用一根网线连接路由器WAN口到上级网络,上级网络要有Internet连接。如果你只是开启SSH,Internet不是必要的,另一根网线连接路由器LAN口与电脑,路由器接通电源。
2:打开浏览器,登陆管理页面,IP地址如果没修改过应该是:192.168.67.1,如果路由器之前没设置过,应该会引导设置路由器。
3:按照引导设置上网方式、无线ID、无线密码与管理密码等信息,进入管理页面后路由器就可以正常使用了。

4:点击‘更多功能’设置按钮,进入更多功能设置页。

008.JPG

此时浏览器地址栏中的地址类似为

http://192.168.67.1/cgi-bin/luci/;stok=********************************/admin/more/

5:对此进行修改,admin斜杠后面内容删除,添加部分内容。改为类似以下内容并回车进入Openwrt启动脚本设置页面,如下图:

***/admin/system/startup

006.JPG

006-2.JPG

6:对本地启动脚本进行编辑,按其要求将以下命令插入到'exit 0'前面

/usr/sbin/dropbear -p 0.0.0.0:22

点击‘/sbin/letvaccount 6’一行结尾处以将光标置于此,然后按回车键换行,插入一个新行,将上面一行代码填入。如果你想备注,行注以#标示。最后不要忘了点击提交按钮保存。

007.JPG

7:再次点击‘更多功能’设置按钮,进入更多功能设置页,点击重启路由,会询问是否确认重启,确认后路由器开始重启。

008.JPG

大约等待一分钟后确认路由器启动,前置彩色LED指示灯亮蓝色或绿色。尝试使用SSH客户端进行连接,连接成功。
Putty界面参考以下填写:

009.JPG

连接成功

010.JPG

输入用户名root,之前配置页面设置的密码,登陆成功。

012.JPG

至此,成功打开此路由器的SSH。

备份路由器分区

我们折腾路由器,最常做的就是为路由器刷入第三方固件,再刷固件之前,我们一般都会对原厂固件进行备份。一般我们两种备份方式,一种是将存储器拆下使用编程器对整个Flash制作镜像,一种是在打开Telnet或SSH的前提下使用命令行备份分区。

1:拆下Flash备份

拆下Flash备份需要有足够的焊接技术,要用到编程器,运气不好极易损坏设备。路由器常见的Flash有两种,一种是SPI Flash,另一种是NAND Flash。SPI Flash使用SPI接口存取数据,编程器实现简单,价格较低,大约三十元左右即可搞到;但NAND Flash较复杂,专业的编程器非常昂贵,价格几百到几千,业余玩家是没有财力购买这种设备的。曾有网友自购IC座与某些型号路由器自行DIY编程器,若读者有兴趣具体资料可使用搜索引擎搜索,本文暂不讨论硬件备份技术。

2:SSH登录使用命令行配合WinSCP备份分区

使用SSH登录路由器通过命令行备份分区需要有root权限。当您打开了路由器的SSH登录功能,且获取到了root账号的登录权限,您可以通过cat命令将分区备份到/tmp下,该位置在RAM中,因为路由器的RAM一般情况都是比ROM大的,所以我们可以把RAM的镜像存储在内存中。比如我们这次的乐视超级路由器,RAM大小为128M,ROM为16M。这个机器我已经成功备份了mtd0~mtd6的所有分区,以下是操作步骤。
首先确保网路连接正常,通过SSH终端连接路由器并登录,输入cat /proc/mtd 命令以列出所有分区,不同机型可能分区方案不同,我们看一下乐视这款路由器的分区:

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00e30000 00010000 "rootfs"
mtd3: 005b0000 00010000 "rootfs_data"
mtd4: 00170000 00010000 "kernel"
mtd5: 00010000 00010000 "art"
mtd6: 00fa0000 00010000 "firmware"

我们可以看出,名字为"u-boot"的mtd0分区明显是存储Bootloader的,Kernel可能表示的系统内核,art是机器的工厂数据,firmware就表示固件。
假如我们想要备份u-boot的分区数据,我们可以使用cat命令来创建备份并将其存储到/tmp。

root@OpenWrt:~# cat /dev/mtd0 > /tmp/mtd0

这条命令是没有回显信息的,当我们再次看到以下信息时,表示命令已经执行完毕。

root@OpenWrt:~#

这时我们就可以在/tmp目录下看到一个名为mtd0的文件,大小为256KB,我们可以使用WinSCP下载文件到本地,然后删除/tmp下的文件,以释放存储空间。
重复以上步骤,把mtd0改为mtd1,我们尝试运行以下命令,就可以将mtd1的数据备份到/tmp中。

root@OpenWrt:~# cat /dev/mtd1 > /tmp/mtd1

我们依然可以使用SCP客户端将文件下载到本地,然后删除/tmp下的mtd1文件。
如果我们需要,如此重复操作,可将mtd0~mtd6全部备份。我们发现,所有的文件的总大小超过了Flash的大小16M,分析文件大小可知,mtd3:rootfs_data是属于mtd2:rootfs的,mtd2:rootfs和mtd4:kernel构成了mtd6:firmware最终我们会发现,Firmware + u-boot + u-boot-env + art合起来正好是16384KB等于16M。如此看来,其实我们备份mtd0,1,5,6,即可对整个Flash空间进行了备份。

为机器刷入新的Bootloader

将机器原厂系统备份后我们就可以随意刷固件了么?别急,我们在开始随意刷入固件之前可以先为其刷入一个称之为Breed的Bootloader,通过这个Bootloader我们可以更方便安全的为路由器刷入新的固件。
看到这可能有人会问,什么是Bootloader?简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。如果想详细了解相关知识,具体参考:嵌入式系统 Boot Loader 技术内幕
为本机刷入Breed,我们需要找到与本机对应的Breed,我们可以访问作者提供的下载网站查找下载对应机器型号的的breed,下载后将文件改名为breed.bin后使用WinSCP上传至路由器/tmp目录,然后我们尝试运行mtd write /tmp/breed.bin u-boot,这时我们会发现如下提示:

root@OpenWrt:/tmp# mtd write breed.bin u-boot
Could not open mtd device: u-boot
Can't open device for writing!

这是因为当前运行的原厂固件不支持对Bootloader区写入,不仅如此,Openwrt编译时默认的配置都是不支持写Bootloader区的,如果需要Openwrt正常运行此命令,需要在编译openwrt时设置好配置文件,Openwrt的编译不在本文讨论范围。幸运的是,我在网上找到了其他网友分享的解锁u-boot临时固件,我们将此固件刷入,然后就可以正常运行写入命令了。
首先,我们下载这个临时固件ap147.bin,将其通过WinSCP上传至路由器/tmp目录,只保留与电脑连接的LAN口网线,断开路由器其他网线。然后使用sysupgrade命令刷入固件。

root@OpenWrt:/tmp# sysupgrade -F -n ap147.bin
Sending TERM to remaining processes ... netifd sleep sleep mcproxy miniupnpd zebra watchquagga ifplugd led-monitor nginx uhttpd dnsmasq monit letvremotecontr xl2tpd privoxy letvreport letvlogreport ntpd crond rcS logger syslogd klogd hotplug2 ubusd log_monitor
Sending KILL to remaining processes ... sleep sleep uhttpd letvlogreport crond
killall: led-monitor: no process killed
killall: wan_probe: no process killed
setting up led super_router:blue:wan
setting up led super_router:red:wan
setting up led super_router:green:wan
Switching to ramdisk...
Performing system upgrade...
Warning: Bad CRC, using default environment
ash: invalid number 'bootcmd=bootp;'
ash: invalid number 'setenv'
ash: invalid number 'bootargs'
ash: invalid number 'root=/dev/nfs'
ash: invalid number 'nfsroot=${serverip}:${rootpath}'
ash: invalid number 'ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off;'
ash: invalid number 'bootm'
ash: 0x0: unknown operand
Unlocking firmware ...

Writing from <stdin> to firmware ...
Upgrade completed
Rebooting system...

显示Rebooting后,我们会发现路由器的IP地址变成了192.168.1.20,我们登录管理页面,使用密码password登录路由器,修改密码。然后WinSCP和SSH终端使用修改后的密码通过IP192.168.1.20登录。将之前下载的breed文件改名为breed.bin后使用WinSCP上传至路由器/tmp目录,输入以下命令成功刷入。

root@Gargoyle:/tmp# mtd write /tmp/breed.bin u-boot
Unlocking u-boot ...

Writing from /tmp/breed.bin to u-boot ...
root@Gargoyle:/tmp#

然后我们输入reboot命令重启路由器。
按住复位键接通电源大约10秒左右,机器指示灯会不断闪烁,浏览器访问192.168.1.1进入Breed界面。然后我们就可以愉快的刷入固件了。

参考:

本文思路参考自:

1:(更新)解锁uboot,刷入breed,乐视路由已破解(非拆机)附官方固件+art备份64k文件
https://www.right.com.cn/forum/thread-172877-1-1.html

其他搞机参考资料:

1:乐视路由器抢先全网开箱+首拆+评价 多图(增补润色版)
http://bbs.mydigit.cn/read.php?tid=1327297
2:乐视路由器刷OpenWrt(LEDE)教程
https://www.right.com.cn/forum/thread-195788-1-1.html
3:[10-09更新]LETV 路由器刷openwrt固件---QCA高通原厂无线驱动
https://www.right.com.cn/forum/thread-194485-1-1.html
4:乐视超级路由器刷LEDE,安装SS插件
https://www.right.com.cn/forum/thread-261787-1-1.html
5:嵌入式系统 Boot Loader 技术内幕
https://www.ibm.com/developerworks/cn/linux/l-btloader/index.html
6:Breed下载页
https://breed.hackpascal.net/

记Google输入法在Google浏览器中无法正常显示候选词选择器

记Google输入法在Google浏览器中无法正常显示候选词选择器

  本人在最近一段时间突然发现Google输入法在Google浏览器中无法正常显示候选词选择器,尝试检查输入法设置,都处于正常状态,且其他软件中输入法使用正常。思来想去,发现最近有一次更新浏览器的记录,该问题是在浏览器更新之后出现的。检查浏览器与输入法版本,输入法版本为:2.7.25.128,浏览器当前版本是70.0.3538.67。尝试架好科学上网工具,打开Google浏览器,打开菜单选择:帮助-》关于。Google浏览器会检测到新版本,发稿日期当天,Google浏览器更新到70.0.3538.77,该问题解决。

  综上可判断这是一次Google浏览器与Google输入法不兼容导致的问题。

使用 Kon-Boot 绕过Windows 7登陆密码

使用 Kon-Boot 绕过Windows 7登陆密码

前言

  Kon-boot 能够让用户不需要密码登陆电脑,该工具支持Windows和Mac,其原理是在于通过HookBIOS修改操作系统系统内核的引导处理,跳过SAM的检查,直接登陆系统。它对系统内核的修改是临时的,重启后就会恢复。这样就可以在不修改密码的情况下访问系统,这个在某些情况下是很有必要的。

读懂并实践本文,你可能需要在技能树中点亮以下技能:

1:基本的Windows系统操作;
2:会修改计算机BIOS设置,设置通过其他媒体启动计算机;
3:必要时需要科学上网技能;

操作警告:

  修改计算机的BIOS设置可能导致计算机无法正常启动,本文没有这项技能的教学内容,请自行通过搜索引擎学习相关内容;未经授权访问计算机系统是非法行为。本人对您学习本文的操作所引起的损失等不负任何责任,请遵守当地法律法规。

软硬件准备

  学习本文体验这个工具需要做如下准备:
1:一台装有Windows系统的计算机。
2:Kon-Boot软件包。
3:一个U盘:官方有文档建议不要大于16GB,否则可能导致引导问题;本工具文件很小,32M的U盘就足够了。
(我准备了一个2G的U盘)

操作步骤

1:下载Kon-Boot软件包

  您可以通过搜索引擎搜索下载,因为这是一个收费软件,可尝试通过搜索引擎下载一个破解版软件。比如可以在这里下载到。下载完成后自行解压并找到以下目录。

01.JPG

2:通过写入U盘制作启动盘

  首先检查计算机上不要插有其他可移动存储设备,插入准备好的U盘,记住这个U盘的盘符(比如我是H:)。参考README.txt内容,右击usb_install2_RUNASADMIN.bat,选择以管理员权限运行。
脚本会提示,确认移除了无关设备,确认是右键选择管理员权限运行的。
02.JPG

  确定,然后弹出以下内容,询问是不是要使用以下设备作为目标存储器。并且警告,磁盘中的所有数据将会被覆盖。
03.JPG

  对比Logical Drive:后的盘符,是否为U盘盘符。检查无误后点击确定,系统将调用系统自带的Diskpart来部署工具。

05.JPG

  完成后系统会有如下提示,Your Kon-Boot on USB is ready!

06.JPG

  点击确定退出即可。这时,我们的工具就制作完成了。

3:上机测试

  首先将U盘插入计算机,开机通过快捷键进入BIOS设置。如果机器启用了Security Boot,将其修改为关闭状态,设置允许通过USB启动计算机后保存。将刚才做好的U盘设为第一启动项后保存重启,或在重启后进入启动设备选项菜单选择通过U盘启动。
  然后您可以看到类似如下页面,这就表示Kona—Boot已经成功加载了。

07.JPG

  接下来Windows会开始加载,启动,完成过会进入登陆界面。

08.JPG

  在此登陆界面无需输入密码,或在密码输入框中随意输入字符,按Enter键系统直接欢迎您进入系统。

09.JPG

  至此我们就跳过了登陆密码,直接访问了系统。
  需要说明的是,这个工具只是让本次访问不需要密码,这种跳过密码登录系统的模式只是暂时的,拔掉工具U盘,重启计算机后还是需要原来的密码登录的。这不是一个密码破解工具,也不是一个密码删除工具,这是一个临时型密码跳过工具。

4:使用本工具修改密码

  某些情况下,我们可能需要修改密码。您可以直接在登陆的系统中以管理员权限运行命令提示符,或者在登陆页面状态下直接点击五次键盘上的Shift键(假如粘滞键功能未禁用,系统默认是未禁用的)。
通过在以管理员权限运行的命令提示符中输入以下命令直接修改指定用户密码:

net user [用户名] [密码]

  如图,是将用户Lexsion的密码修改为:123456
10.JPG

最后,再次声明,未经授权访问计算机系统是非法行为,请遵守当地法规。

欢迎转载,转载请注明出处

参考:

1:https://kon-boot.com/docs/#

[译]Cisco Meraki Z1刷入LEDE固件教程

Cisco Meraki Z1刷入LEDE固件教程

前言:

本文内容主要是对OpenWrt论坛的一个帖子的翻译,原帖地址:https://forum.openwrt.org/t/build-for-cisco-meraki-z1/7939
原文:LEDE firmware for Cisco Meraki Z1
原文作者:vuhuy
(如有出入请以原帖内容为准,若能看懂英文,建议先看原帖;本文仅供参考,刷机风险自担,本人概不负责)

读懂并实践本文,你可能需要在技能树中点亮以下技能:

1:基本的Windows系统与Linux系统操作;
2:基本的路由器组网知识;
3:至少拥有一个USB转TTL工具,并且会使用它;
4:必要的情况下,可能需要科学上网技能

为Cisco Meraki Z1刷入LEDE固件

操作警告:

使用和刷入自定义固件是一个细活。您可能会因此损坏您的设备,所以请务必小心操作!使用本指南和固件需要您自担风险。LEDE和我都不对您路由器可能发生的损坏负责。

关于本编译:

LEDE已经支持Cisco Meraki Z1。但是,我需要编译一个额外的initramfs映像,以用于第一次为路由器刷机。此外,此设备在OpenWRT的TOH条目不完整且具有无效链接。我就把它放在这里以防有人需要它。

软件和硬件准备:

以下列出了所需的软件和硬件及其示例
串行终端(Serial terminal):使用minicom(Linux系统),PuTTY 3 (Windows系统)或其他自己熟悉的软件。
SCP客户端(SCP client):使用scp(Linux),WinSCP 1 (Windows)或其他自己熟悉的软件。
USB TTL转换器(USB TTL converter):基于FTDI FT232RL的主板是优质廉价的USB TTL转换器(在您最喜欢的中国网店上1.5欧元)。
(译者注:USB TTL转换器,俗称USB转串行口,我用的模块用的CP2102方案,软件使用的SecureCRT)

步骤

1:下载固件映像
2:建立root访问权限
3:备份原始固件
4:刷入 initramfs 映像
5:删除存储分区
6:刷入 sysupgrade 映像
7:更新LEDE

下载固件映像

访问我的 OneDrive 以下载预编译的二进制文件。提供了基于 LEDE 17.01.4 使用默认配置编译的initramfs和sysupgrade映像。
Meraki Z1的initramfs映像LEDE网站上是没有提供下载的,您需要在这下载以能够完成LEDE固件的第一次刷入(译者注:因为要先刷initramfs才能再刷sysupgrade)

LEDE网站会自动编译Sysupgrade映像,并可在LEDE网站上获取。从LEDE网站 (目录/ ar71xx / nand / z1-squashfs-sysupgrade.tar)下载(较新的)sysupgrade映像,或使用我的 OneDrive 上的映像 。

建议使用LEDE网站提供的sysupgrade映像。Opkg可能会针对(任何)自定义sysupgrade映像上的内核依赖性失败。如果您使用的是自定义编译映像,请使用--force-depends标志忽略此项。

建立root访问权限

为了开始刷入固件,我们需要获取路由器的root访问权限。

1:关闭设备电源并拔下所有以太网电缆。
2:拆开设备。注意拆掉橡胶垫下方的四个螺钉。
3:将USB TTL转换器连接到JP1的串行UART接口。

J1 = GND(连接到USB TTL转换器的GND)
J2 = RxD(连接到USB TTL转换器的TxD )
J3 = TxD(连接到USB TTL转换器的RxD)
J4 = Vcc(不要连接,这是最靠近USB端口的跳线)

4:打开设备电源并打开USB TTL转换器的终端软件。波特率(速度)为115200。
5:按住重置按钮10-15秒,直到设备上的LED熄灭。
6:让设备启动,几分钟后在串行终端界面输入回车。它应该输出<Meraki>
7:检查您是否可以使用该odm help命令:

<Meraki> odm help

(译注:以上内容假设您已点亮“USB TTL转换器使用”技能,并有一定电子技术常识,否则您可能难以看懂,那就不要继续了)

8:如果路由器输出帮助文本,请跳至步骤14.否则,重复步骤5-7几次,如果路由器继续输出UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS消息,则继续执行下一步。

9:将Z1的WAN端口连接到另一台路由器的LAN端口。此路由器还必须与Internet断开连接(拔下WAN以太网电缆)。

10:按住重置按钮10-15秒,直到设备上的LED熄灭。

11:让设备启动,几分钟后在串行终端输入回车。它应该输出<Meraki>。

12:通过键入odm help命令来检查是否可以使用ODM命令。

13:如果路由器输出帮助文本,请跳至步骤14.否则,如果路由器继续输出UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS信息,请多次尝试重复步骤10-12。在这一步,odm help命令对我有用。如果您继续看到此信息,那么很遗憾,您当前版本的固件不能使用此方法获取root权限。

14:首先我们要更改设备的序列号为Q2XX-XXXX-XXXV以准备获取root权限,这是漏洞利用的一部分。如果您不知道您原来的序列号,请写下您的原始序列号。它通常印在Z1底部的标签上(或使用步骤15中的命令直接读取)。(译者注:意思可以先用步骤15的方式读出原来的序列号,自己找个地方记下来。因为待会儿完事要重新把原来的序列号写回去,现在我们为了利用漏洞,临时先改一下序列号)

<Meraki> odm serial_num write Q2XX-XXXX-XXXV

15:检查序列号是否更改为Q2XX-XXXX-XXXV。

<Meraki> odm serial_num read

16:如果序列号已经正确更改,请关闭设备电源并在重新打开设备电源时在电脑串行终端中按住“s”键,直到出现Busybox提示符。

Got magic key s

BusyBox v1.20.2 (2014-09-19 12:42:33 PDT) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ #

17:请依次运行以下命令获取固件的root权限。这些命令将删除路由器中一些配置文件和日志文件。如果你想保留这些文件,请复制一份!(译者注:文中没有提供配置文件备份方式)

/ # cd /storage/
/ # rm ./config*
/ # rm ./odm_test.log
/ # echo "serial_allow_odm true" > ./config
/ # echo "serial_access_enabled true" >> ./config
/ # echo "serial_access_check false" >> ./config
/ # echo "valid_config true" >> ./config
/ # cp ./config ./config.local
/ # exit

18:输入exit命令后,设备将继续引导。

19:将序列号更改回原始序列号。

m001122334455:/# odm serial_num write <your_original_serial_number>

20:您现在已经拥有root访问权限。请注意,如果您将路由器连接到互联网,您可能会再次失去root权限。

备份原始固件

通过root权限,我们现在可以创建原始固件的备份。如果出现问题,或者您想恢复原厂固件时,可以使用它。

1:如果您使用其他路由器来获取root权限,现在请断开所有网线。

2:通过网线将电脑连接到路由器Z1上的LAN1网口。

3:重新获取路由器IP地址(提示:它是网关地址)。

4:使用串行终端设置root密码。

m001122334455:/# passwd

5:输入cat /proc/mtd命令以列出所有分区。您的分区方案可能不同,但对于mtd0到mtd4(包括mtd4)应该是相同的。

m001122334455:/# cat /proc/mtd
mtd0: 00020000 00020000 "loader1"
mtd1: 007e0000 00020000 "bootkernel1"
mtd2: 00020000 00020000 "loader2"
mtd3: 007e0000 00020000 "bootkernel2"
mtd4: 06fe0000 00020000 "ubi"
mtd5: 00020000 00020000 "origcaldata"
mtd6: 0001f800 0001f800 "board-config"
mtd7: 0087d800 0001f800 "rootfs-wired-9-144173-1-2"
mtd8: 0086a000 0001f800 "rootfs-wired-9-144173-1-1"
mtd9: 0501a800 0001f800 "storage"
mtd10: 0003f000 0001f800 "caldata"

6:为loader1通过使用cat命令来创建备份并将其存储在/storage/文件夹上。

m001122334455:/# cat /dev/mtd0 > /storage/mtd0      //译注:mtd0就是loader1分区,后面的bootkernel1对应使用mtd1,以此类推

7:使用SCP客户端检索备份。使用SCP协议建立连接,用户名为root,密码为步骤4中设置的密码。

8:当你在本地PC上检索并存储备份后,从路由器中删除备份。使用SCP客户端功能或在串行终端中使用rm命令来删除它。

m001122334455:/# rm /storage/mtd0 

(译注:作者没有给出SCP软件使用方法,因为您可以使用带GUI的软件,否则您的技能树可能不支持您学习本文内容)

9:为bootkernel1,loader2,bootkernel2,board-config和caldata分区重复步骤6-8的操作。如果一次执行此操作,您可能会因此耗尽内存。(译注:所以请一个一个来,避免在删除上一个备份前创建下一个备份)

10:另外,需要备份storage分区。这是一个很大的分区,所以只需使用 SCP 将/storage/文件夹中的所有文件传输到本地PC即可。(译注:没法用前面步骤6-8办法)

11:要验证备份数据是否正确,请再次重复步骤6-9,并比较(例如运行checksum软件或在Linux系统中使用cmp命令)两次获取的文件结果是否相同。(译注:作者没有提供具体操作,只提供了个方法)

刷入initramfs映像

重刷该路由器固件由两部分操作组成:刷入initramfs映像和刷入sysupgrade映像。

1:将PC连接到Z1上的LAN1端口。它应该之前已经连上了,你刚才确实已经做了备份,不是吗?

2:在本地计算机上搭建HTTP服务器以提供initramfs映像。
(译注:作者没有给出具体操作过程,如果您之前给别的路由器刷过第三方固件,应该是会这个操作的,否则可以考虑先通过搜索引擎学习一下,或参考下一条译注。)

3:检查您的计算机本地IP地址(提示:它的IP地址是由Z1的DHCP分配的)

4:串行终端中使用wget命令将initramfs映像下载到路由器中的/storage/文件夹中。

m00180A167ED0:/# wget http://<your_local_ip>/<initramfs_file> -O /storage/initramfs.bin

(译注:译者本人不是通过这种方式将映像下载到/storage/文件夹的,其实可以使用SCP软件直接上传的方式,取代上面2-4的操作。另外,您没看错,我也没翻译错,下面又出现了一个步骤4,原文中就是写了两个步骤4。这个是教您校验映像文件,您可以使用SCP软件再上传一个initramfs映像文件,改名为:initramfs2.bin,取代下面条目4中第一条命令)

4:您可能想验证下载的 initramfs 映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。

m001122334455:/# wget http://<your_local_ip>/<initramfs_file> -O /storage/initramfs2.bin
m001122334455:/# cmp /storage/initramfs.bin /storage/initramfs2.bin
m001122334455:/# rm /storage/initramfs2.bin

5:使用 dd 命令将下载的 initramfs 映像写入 bootkernel1 分区。

m001122334455:/storage# dd if=/storage/initramfs.bin of=/dev/mtdblock1

6:使用rm命令删除下载的initramfs映像。

m001122334455:/# rm /storage/initramfs.bin

7:使用reboot命令重新启动路由器。

m001122334455:/# reboot now

8:如果一切都正确完成,LEDE现在应该启动。检索您的计算机新的本地IP地址。如果LEDE无法启动,请不要继续!
(译注:LEDE是否成功启动,是能够在串行终端中看到的回显信息的,如果您看不懂,可能您不太适合阅读本教程)

9:串行终端中使用wget命令将initramfs映像下载到路由器中的/tmp/文件夹中。

root@LEDE:/# wget http://<your_local_ip>/<initramfs_file> -O /tmp/initramfs.bin

10:您可能想验证下载的initramfs映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。

root@LEDE:/# wget http://<your_local_ip>/<initramfs_file> -O /tmp/initramfs2.bin
root@LEDE:/# cmp /tmp/initramfs.bin /tmp/initramfs2.bin
root@LEDE:/# rm /tmp/initramfs2.bin

11:使用dd命令将下载的initramfs映像写入bootkernel3分区(recovery)。

root@LEDE:/# dd if=/tmp/initramfs.bin of=/dev/mtdblock3

12:使用rm命令删除下载的initramfs映像。

root@LEDE:/# rm /tmp/initramfs.bin

13:使用reboot命令重新启动路由器。

root@LEDE:/# reboot now

删除存储分区

存储器中还有一些LEDE不使用的存储分区。我们可以在刷入sysupgrade映像之前删除它们,以释放一些空间(大约100MB)。

1:使用ubinfo命令列出所有的UBI卷。

root@LEDE:/# ubinfo -a

2:使用ubirmvol命令删除列出的UBI卷,但board-config卷除外。对每个UBI卷重复该命令。永远不要删除board-config卷!

root@LEDE:/# ubirmvol /dev/ubi0 -N <volume_name>

3:使用ubimkvol命令创建新的calibration data卷。

root@LEDE:/# ubimkvol /dev/ubi0 -N caldata -s 252KiB

4:使用ubinfo命令验证您的UBI卷。它应该显示有两个卷:board-config卷和新创建的caldata卷。

root@LEDE:/# ubinfo -a

刷入 sysupgrade映像

接下来将为路由器刷入sysupgrade映像。刷入sysupgrade映像将重新填充calibration data卷,创建rootfs并自动展开rootfs_data到剩余的UBI可用空间。

1:将PC连接到Z1上的LAN1端口。它应该之前已经连上了,你刚才确实已经做了备份,不是吗?

2:在本地计算机上设置HTTP服务器以提供sysupgrade映像。

3:串行终端中使用wget命令将sysupgrade映像下载到路由器中的/tmp/文件夹中。

root@LEDE:/# wget http://<your_local_ip>/<sysupgrade_file> -O /tmp/sysupgrade.tar

4:您可能需要验证下载的sysupgrade映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。

root@LEDE:/# wget http://<your_local_ip>/<sysupgrade_file> -O /tmp/sysupgrade2.tar
root@LEDE:/# cmp /tmp/sysupgrade.tar /tmp/sysupgrade2.tar
root@LEDE:/# rm /tmp/sysupgrade2.tar

5:使用sysupgrade命令执行sysupgrade 。

root@LEDE:/# sysupgrade -v /tmp/sysupgrade.tar

6:恭喜您,您在Meraki Z1上运行LEDE!您现在可以拆除USB TTL转换器并将路由器装回外壳。

更新LEDE

您现在可以通过执行sysupgrade命令将LEDE更新为任何更新的版本。不再需要initramfs 映像了!您可以在LEDE网站上下载Meraki Z1的新sysupgrade映像。
使用SSH访问路由器并使用wget和sysupgrade两条命令执行升级。

root@LEDE:/# wget http://<your_local_ip>/<sysupgrade_file> -O /tmp/sysupgrade.tar
root@LEDE:/# sysupgrade -v /tmp/sysupgrade.tar

不要忘记调整/etc/sysupgrade.conf 告诉LEDE在升级过程中应该保留哪些设置。

参考

https://servernetworktech.com/2016/02/pwning-the-meraki-mr18/
https://servernetworktech.com/2017/06/pwning-the-meraki-mr18-again/
https://wiki.openwrt.org/toh/meraki/z1