前言

Q: 为什么冷备份?

我之前从来没有备份过服务器。因为不想在魔改出问题之后以此前的成果为代价。

Q: 为什么使用TinyCore Linux?

一是因为新鲜,二是因为短小精悍,三是因为这个发行版成功引导进入系统的概率为九九成。

熟悉我的人应该知道本文所谓的服务器其实是一台年事已高的笔记本电脑。

过程

制作USB启动盘,启动

下镜像,用rufus灌到U盘里,插入,启动

(可省)在TinyCore Linux中启用SSH

因为不熟悉TinyCore自带的包管理器所以先运行了Dock栏的Apps,它会自动设置最快的镜像。接着:

1
2
3
4
tce-load -wi openssh
sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config
passwd
sudo /usr/local/etc/init.d/openssh start

正常的话服务启动,使用ifconfig查看IP地址,然后就可以连接了。

motd:

1
2
3
4
5
6
7
8
9
10
11
$ ssh tc@192.168.1.92
The authenticity of host '192.168.1.92 (192.168.1.92)' can't be established.
ECDSA key fingerprint is SHA256:PfemkNyzwfMYpItpiy6LvYM1R/j09/vMCz72ddvvrhY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.92' (ECDSA) to the list of known hosts.
tc@192.168.1.92's password:
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net

tc@box:~$n

原本打算直接走SSH,但如果掉线,那就前功尽弃了。

考虑到SSH会话容易中断,所以备份文件还是会在机器上操作。

挂载存储备份文件的分区

Dock栏有MountTool。

按钮上有分区的标识,背景颜色为绿色则表示已被挂载,反之为红则未挂载。点按按钮实现挂载/卸载分区的操作。

挂载点在/mnt下的分区编号)

挂载SFTP路径

1
2
tce-load -wi sshfs	# 安装sshfs
sshfs user@x.x.x.x:/remote/path /local/path #挂载

dd if=……

使用dd命令将服务器根文件系统打包压缩成img

1
dd if=/dev/sda bs=1M | gzip > backup.img

还原的命令

1
gzip -dc backup.img | dd of=/dev/sda bs=1M)

进展如何?

dd命令并不会显示进度,但我们可以通过输出backup.img的文件大小来得到反馈。

至少,数值的变化能够表明进程没有死。

1
2
3
4
5
6
while :
do
du -s backup.img
sleep .5
clear
done

参考