联想个人云存储T1 原生固件获取root&安装docker
偶然从海鲜市场得到联想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
<!--如果直接通过挂载生成enable_ssh文件也行,可是admin账号似乎没有办法sudo -i或者su执行命令,如果编辑passwd文件也行,那还是不如一步到位,把密码改好了。-->
启动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/
最新的安装包为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
安装过程是比较暴力的,暂时也没有更好的解决方法。
/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(下一步自己研究怎么编译),而不是动手能力。刷某大神的官改固件现阶段的问题就是会提示固件升级。在原生固件折腾一下,也能实现自己想要的,过程还是学到一些东西的。
参考了文章如下,感谢作者。
https://www.bilibili.com/read/cv15633573
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
Ouou的奇妙冒险
校验提示文案
frankiem
校验提示文案
SmartYou
校验提示文案
天天开心快乐365
校验提示文案
Ddmiao
校验提示文案
pwt133
校验提示文案
值友6708254228
校验提示文案
KangarooZ
校验提示文案
摸鱼划水
校验提示文案
飞流直下式背光电视
校验提示文案
ZbetterZ
校验提示文案
chinadyr
校验提示文案
zmxyz
想上bullseye,然后装omv
校验提示文案
鱼沧海
校验提示文案
值友9539222907
校验提示文案
值友2948238050
校验提示文案
值友2948238050
校验提示文案
值友9539222907
校验提示文案
鱼沧海
校验提示文案
zmxyz
想上bullseye,然后装omv
校验提示文案
chinadyr
校验提示文案
pwt133
校验提示文案
天天开心快乐365
校验提示文案
ZbetterZ
校验提示文案
飞流直下式背光电视
校验提示文案
摸鱼划水
校验提示文案
SmartYou
校验提示文案
frankiem
校验提示文案
KangarooZ
校验提示文案
值友6708254228
校验提示文案
Ddmiao
校验提示文案
Ouou的奇妙冒险
校验提示文案