偶然从海鲜市场得到联想T1(280.00包邮),就开始想着怎么折腾。其实,本人已经有很多的群晖,两白一黑,两白一主一备(无奈运气不是很好,坏过2块的硬盘),一黑挂pt。参考了张大妈家的几篇文章,大概的办法,一是硬改刷黑群,一个是原生固件装docker。硬改的物件都准备好了,无奈搭不上线,最关键的部分是u-boot的生成。
原生固件装docker呢,可能是我眼拙,不太理解现在的网络语言,愣是找不到链接(当然,不耻下问也能问到)。
还是自己研究吧,下面把自己的成果小结一下,比刷机要简单,而且不会提示固件更新。
一、准备工作
需要能访问raid的linux(ubuntu等),Windows其实也可以,还是linux原生支持的方便。
移动硬盘盒
可以TTL跑码的工具
二、获取原生固件root权限
1、设置账号密码
通过联想的客户端设置局域网访问账号设置,这个账号和密码一会儿会用上。(其实这个步骤不要也行,默认的admin账号密码是123456)
2、挂载硬盘
将你的硬盘从联想T1拔下拉放入移动硬盘盒(要不要关机看你,安全起见还是关机),这时候通过linux访问这个硬盘的内容。
此时打开“文件”查看是否有文件系统被直接挂载,可以访问。如有,那就跳过挂载步骤,直接访问数据即可。
运行终端(英文系统下为Terminal),在终端中使用以下命令安装mdadm:
sudo -i
apt-get install mdadm
使用以下命令安装lvm2以保证vgchange正常运作:
apt-get install lvm2
运行以下命令覆盖常规检查重建RAID阵列:
mdadm -Asf
运行以下命令挂载所有已知的卷到系统:
vgchange -ay
此时应能在系统自带的“文件”中看到新挂载的卷,打开便能看到所有文件,接下来就是修改shadow文件了。
3、获取root权限
可以直接使用admin的密码123456,在挂载的硬盘找到(例如,我这边挂载到/sata)/sata/.storage/etc/shadow文件(这个文件就不解释了)编辑它。
把admin的密码密文拷贝到root下(第1个冒号和第2个冒号之间),把第3个冒号和第4个冒号的数字改为0(不改,登录会要重置密码,登录不了)。
或者,一步到位,把刚才通过APP设置的密码密文拷贝到root下,同时,第3个冒号和第4个冒号的数字改为0。
4、TTL跑码
通过TTL跑码就可以在串口下进行ssh启用,通过刚才的步骤就可以直接root账号登录控制台了。
5、启用SSH
在/opt/conf/user下生成enable_ssh文件。
touch /opt/conf/user/enable_ssh
启动SSH服务(不做这一步也行,有上面那个文件生成,重启也能启动ssh服务了)。
/etc/init.d/S50dropbear start
至此,你已经可以通过SSH远程访问联想T1了,甚至还有了root权限,接下来怎么玩,凭君喜好。
三、安装docker
其实,我最主要的目标是给没有网络功能的打印机实现airprint,联想T1也内置了cups,但是被阉割过了,还是自己搞吧。搜罗了一遍,要想找到对应的ipk包(联想T1这个固件其实是openwrt的深度定制版)着实有点困难,最简单的还是docker。
1、下载docker
下载地址:https://download.docker.com/linux/static/stable/
镜像地址:https://mirrors.aliyun.com/docker-ce/linux/static/stable/aarch64/?spm=a2c6h.25603864.0.0.654c4ccaPxer04
点击进入aarch64
最新的安装包为docker-20.10.9.tgz,浏览器可以下载,网址为
https://download.docker.com/linux/static/stable/aarch64/docker-20.10.9.tgz
2、上传docker压缩包
将这个压缩包不解压直接拷贝到tmp文件夹内,然后cd /tmp,进入到该目录中
3、解压
tar -zxvf docker-20.10.9.tgz
4、安装docker
安装过程是比较暴力的,暂时也没有更好的解决方法。
/bin/cp -a /tmp/docker/* /usr/bin,这样就会把所有刚刚解压的文件拷贝到系统目录下。
然后执行dockerd,用来创建一些临时的目录。但是执行过程会失败,我们需要修改配置文件
vi /etc/docker/daemon.json
将下述文本复制进去
{
“storage-driver”: “vfs”,
“iptables”: false,
“data-root”: “/opt/docker”
}
mount – o remount rw /
5、设置docker自启动
vi /etc/init.d/S60dockerd
#!/bin/sh
NAME=dockerd
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS=””
[ -r /etc/default/$NAME ] && . /etc/default/$NAME $1
do_start() {
echo -n “Starting $NAME: ”
start-stop-daemon –start –quiet –background –make-pidfile
–pidfile $PIDFILE –exec $DAEMON — $DAEMON_ARGS
&& echo “OK” || echo “FAIL”}
do_stop() {
echo -n “Stopping $NAME: ”
start-stop-daemon –stop –quiet –pidfile $PIDFILE
&& echo “OK” || echo “FAIL”}
case “$1” in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
sleep 1
do_start
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
esac
注:将就看吧,没想到我这初级写作者,不支持markdown。
至此,docker安装完毕。
四、安装portainerio
其实,到这一步已经是非必要的了,还是命令行来的方便,这里,顺便介绍一下。
拉取镜像
docker pull portainer/portainer
创建卷
docker volume create portainer_data
创建容器
docker run –restart=always -d –name=portainer -p 10001:9000 -v /var/run/docker.sock:/var/run/docker.sock –net=bridge -v portainer_data:/data portainer/portainer
确认容器正常运行
docker ps
在浏览器输入联想T1的IP和10001端口号,就可以了看到对应的管理页面,说明安装成功了。
有了docker命令行和web端,想怎么搞都行了。
五、总结
联想T1刷黑群晖,缺的是某大神的u-boot(下一步自己研究怎么编译),而不是动手能力。刷某大神的官改固件现阶段的问题就是会提示固件升级。在原生固件折腾一下,也能实现自己想要的,过程还是学到一些东西的。
评论(0)