1. Backup System 2. Use Tar Backup Linux System 2.1 本次备份在LiveCD环境下进行(20200911) 2.1.1 系统环境状态概述 2.1.2 tar -cpzvf /media/Sv/bk2020-09.tgz ./ 2.1.3 tar -xpzvf bk2020-09.tgz -C /mnt/sda6 2.2 本次备份在arch系统环境下进行(20200912) 2.2.1 系统环境状态概述 2.2.2 tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp / 2.2.3 tar xpzf bk0912.tgz -C / 2.3 本次备份在LiveCD环境下进行(20200913) 2.3.1 系统环境状态概述 2.3.2 tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./ 2.3.3 小结 3. pkglist
1. Backup System
几十年来,Window系统备份一直使用ghost。我不知道有没有其他替代品,但也没想过去找,因为这个ghost就足够好用了。
ghost不支持linux的常见文件系统。Linux系统的备份五花八门有很多种方式。比如使用dd完整备份系统
# dd if=/dev/sda6 | gzip > s6arch2020-08.img.gz
# gzip -dc s6arch2020-08.img.gz | dd of=/dev/sd??...
但存在如下问题。
- 速度慢,单纯的dd命令若使用bs=1M设定块大小,可以显著提高速度,但若使用gzip压缩,指定多大的块都没用。
- 若不使用gzip等压缩,就需要原始磁盘大小的空间存放备份文件。
- 只能还原到原始大小的盘。
Linux系统,一切皆文件,既然是文件,要备份,只需要复制即可。本文记录使用tar备份系统的过程。
2. Use Tar Backup Linux System
2.1 本次备份在LiveCD环境下进行(20200911)
2.1.1 系统环境状态概述
已安装桌面及基本工具chromium (SwitchyOmega) firefox qbittorrent vlc libreoffice ibus等,但xfce4还未清理,安装了全部。详见: Qqlist2020-08v09.xls
$ sudo pacman -Q |wc -l 591 $ sudo pacman -Qe |wc -l 113 $ neofetch -` tom@tompc .o+` --------- `ooo/ OS: Arch Linux x86_64 `+oooo: Host: F.20 `+oooooo: Kernel: 5.8.7-arch1-1 -+oooooo+: Uptime: 42 mins `/:-:++oooo+: Packages: 591 (pacman) `/++++/+++++++: Shell: bash 5.0.18 `/++++++++++++++: Resolution: 1280x800 `/+++ooooooooooooo/` DE: Xfce 4.14 ./ooosssso++osssssso+` WM: Xfwm4 .oossssso-````/ossssss+` WM Theme: Default -osssssso. :ssssssso. Theme: Adwaita [GTK2/3] :osssssss/ osssso+++. Icons: Adwaita [GTK2/3] /ossssssss/ +ssssooo/- Terminal: xfce4-terminal `/ossssso+/:- -:/+osssso+- Terminal Font: Monospace 12 `+sso+:-` `.-/+oso: CPU: Intel Core 2 Duo T8300 (2) @ 2.40 `++:. `-/+/ GPU: Intel Mobile GM965/GL960 .` `/ Memory: 1060MiB / 7950MiB # df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb6 30G 5.4G 24G 19% /media/mint/Sarch
2.1.2 tar -cpzvf /media/Sv/bk2020-09.tgz ./
# cd /media/Sarch
# tar -cpzvf /media/Sv/bk2020-09.tgz ./
$ du -sh bk2020-09.tgz
2.6G bk2020-09.tgz
# md5sum s6arch2020-09.tgz
7111af74b95718d1326dde7bebbfd8be s6arch2020-09.tgz
# shasum s6arch2020-09.tgz
58656fd0daa2c62978d8f3674c9d70b68a533ba5 s6arch2020-09.tgz
2.1.3 tar -xpzvf bk2020-09.tgz -C /mnt/sda6
# tar -xpzvf bk2020-09.tgz -C /mnt/sda6
(记得检查fstab, grub文件)
2.2 本次备份在arch系统环境下进行(20200912)
2.2.1 系统环境状态概述
在0911基础上,清理了xfce4不必要的桌面项目,
$ sudo pacman -Rsun parole xfburn xfce4-screenshooter orage iwd xfce4-cpufreq-plugin xfce4-mailwatch-plugin xfce4-notes-plugin xfce4-wavelan-plugin xfce4-weather-plugin
增加了vbox,gimp,等软件包...
$ sudo pacman -S usbutils smartmontools lostfiles dos2unix convmv fzf virtualbox (virtualbox-host-modules-arch) aria2 elinks links privoxy shadow..... hexchat gimp whois ltrace strace traceroute lsof
配置了桌面sensors等,但clamav还未更新启用...
$ uname -r
5.8.8-arch1-1
2.2.2 tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp /
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda6 30G 8.7G 20G 31% / $ sudo tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp / tar: Removing leading `/' from member names tar: Removing leading `/' from hard link targets tar: /etc/pacman.d/gnupg/S.gpg-agent.extra: socket ignored tar: /etc/pacman.d/gnupg/S.gpg-agent.browser: socket ignored tar: /etc/pacman.d/gnupg/S.gpg-agent.ssh: socket ignored tar: /etc/pacman.d/gnupg/S.gpg-agent: socket ignored tar: /: file changed as we read it $ du -sh bk0912.tgz 2.8G bk0912.tgz $ md5sum bk0912.tgz 081cad8b846334042651fa5708c092f2 bk0912.tgz $ shasum bk0912.tgz 9fc5a682a0f87d7ab9f9b9810489e62f2ae68ed2 bk0912.tgz
2.2.3 tar xpzf bk0912.tgz -C /
$ sudo tar xpzf bk0912.tgz -C /
$ mkdir dev home lost+found mnt proc run sys tmp
(记得检查fstab, grub文件)
2.3 本次备份在LiveCD环境下进行(20200913)
2.3.1 系统环境状态概述
在0912基础上,更新clamav; pacman -S gedit;
$ sudo freshclam
$ sudo systemctl enable clamav-freshclam.service
$ sudo systemctl start clamav-freshclam.service
$ sudo systemctl enable clamav-daemon.service
$ sudo systemctl start clamav-daemon.service
$ curl https://secure.eicar.org/eicar.com.txt |clamscan -
输出必须包括:
stdin: Win.Test.EICAR_HDB-1 FOUND
2.3.2 tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./
# cd /media/Sarch/ # df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb6 30G 6.1G 23G 22% /media/mint/Sarch # tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./ ~ <= 8min ~ # du -sh bk0913x-pkg.tgz 1.9G bk0913x-pkg.tgz # md5sum bk0913x-pkg.tgz 63598a394f2c0b3ce5f67e7e00b1b805 bk0913x-pkg.tgz # shasum bk0913x-pkg.tgz f00fa8a751967f26b401ca208661d732f47ffeee bk0913x-pkg.tgz
2.3.3 小结
备份使用2.3.2,排除pkg包可以显著减少备份体积。
6.1G的桌面系统排除1.1G的pkg包,还有5G大小。压缩打包1.9Gb, 用时8分钟。
通常,普通用户环境备份的内容就下面这5个文件夹
- /usr 4.4Gb 142948 items
- /var 1.4Gb 3496 items (/var/cache/pacman/pkg 1.1Gb 627 items)
- /boot 74.1Mb 381 items
- /root 53.3Mb 745 items
- /etc 4.9Mb 1451 items
连接目录:
- bin -> usr/bin
- lib -> usr/lib
- lib64 -> usr/lib
- sbin -> usr/bin
系统运行过程目录,不需要备份
rwxr-xr-x 5 4096 mnt rwxr-xr-x 20 3620 dev rwxr-xr-x 20 500 run r-xr-xr-x 13 0 sys r-xr-xr-x 222 0 proc rwxrwxrwt 10 260 tmp rwx------ 2 16384 lost+found
其他目录,普通用户很少会用到
rwxr-xr-x 2 4096 opt rwxr-xr-x 4 4096 srv
3. pkglist
$ pacman -Qq |wc -l
626
$ pacman -Qqe |wc -l
122
xfce4-appfinder | flameshot | catfish | network-manager-applet |
xfce4-artwork | gimp | xarchiver | networkmanager |
xfce4-battery-plugin | gedit | unrar | netctl |
xfce4-clipman-plugin | vi | unzip | dhclient |
xfce4-cpugraph-plugin | meld | zip | dialog |
xfce4-datetime-plugin | hardinfo | p7zip | iw |
xfce4-dict | htop | nethogs | thunar |
xfce4-diskperf-plugin | neofetch | iftop | thunar-archive-plugin |
xfce4-eyes-plugin | fd | links | thunar-media-tags-plugin |
xfce4-fsguard-plugin | mlocate | elinks | thunar-volman |
xfce4-genmon-plugin | convmv | chromium | xf86-input-libinput |
xfce4-mount-plugin | dos2unix | firefox | xf86-video-intel |
xfce4-mpc-plugin | exo | v2r.. | xfconf |
xfce4-netload-plugin | alsa-utils | shadow..... | xfdesktop |
xfce4-notifyd | pulseaudio | privoxy | xfwm4 |
xfce4-panel | baobab | aria2 | xfwm4-themes |
xfce4-power-manager | ntfs-3g | qbittorrent | xorg-server |
xfce4-pulseaudio-plugin | vlc | clamav | xorg-xinit |
xfce4-screensaver | ristretto | rkhunter | adobe-source-han-sans-cn-fonts |
xfce4-sensors-plugin | man-db | whois | ibus |
xfce4-session | tree | hexchat | ibus-libpinyin |
xfce4-settings | sudo | traceroute | intel-ucode |
xfce4-smartbookmark-plugin | base | rsync | libreoffice-fresh |
xfce4-systemload-plugin | garcon | pacman-contrib | libreoffice-fresh-zh-cn |
xfce4-taskmanager | gvfs | pacutils | lightdm |
xfce4-terminal | lsof | pkgstats | lightdm-gtk-greeter |
xfce4-time-out-plugin | ltrace | fzf | virtualbox |
xfce4-timer-plugin | strace | lostfiles | linux |
xfce4-verve-plugin | tumbler | mesa-demos | linux-firmware |
xfce4-whiskermenu-plugin | usbutils | smartmontools | grub |
xfce4-xkb-plugin | os-prober |
$ pacman -Qqd |wc -l
504
python | gnupg | pinentry | xorg-fonts-encodings | libnsl |
python-appdirs | gnutls | pixman | xorg-iceauth | libnumbertext |
python-cairo | gobject-introspection-runtime | polkit | xorg-server-common | libodfgen |
python-dbus | gpgme | polkit-gnome | xorg-setxkbmap | libogg |
python-dbus-common | gpm | poppler | xorg-xauth | libomxil-bellagio |
python-gobject | gptfdisk | poppler-data | xorg-xkbcomp | liborcus |
python-ordered-set | graphite | poppler-glib | xorg-xmodmap | libp11-kit |
python-packaging | grep | popt | xorg-xprop | libpagemaker |
python-pexpect | groff | procps-ng | xorg-xrdb | libpcap |
python-ptyprocess | gsettings-desktop-schemas | psmisc | xorg-xset | libpciaccess |
python-pyparsing | gsfonts | pygobject-devel | xorgproto | libpeas |
python-pyxdg | gsm | qrencode | libabw | libpgm |
python-setuptools | gspell | qt5-base | libaio | libpinyin |
python-six | gtk-update-icon-cache | qt5-svg | libappindicator-gtk3 | libpipeline |
python2 | gtk2 | qt5-x11extras | libarchive | libplacebo |
python2-dbus | gtk3 | raptor | libass | libplist |
python2-gobject | gtksourceview3 | rasqal | libassuan | libpng |
python2-gobject2 | gtksourceview4 | rav1e | libasyncns | libproxy |
a52dec | gzip | re2 | libatasmart | libpsl |
acl | harfbuzz | readline | libatomic_ops | libpulse |
adobe-source-code-pro-fonts | harfbuzz-icu | redland | libavc1394 | libqxp |
adwaita-icon-theme | hicolor-icon-theme | rest | libblockdev | libraw |
alsa-lib | hidapi | rtkit | libbluray | libraw1394 |
alsa-topology-conf | hunspell | run-parts | libbytesize | librevenge |
alsa-ucm-conf | hwids | sdl | libcanberra | librsvg |
amtk | hyphen | sdl2 | libcap | libsamplerate |
aom | iana-etc | sed | libcap-ng | libsasl |
archlinux-keyring | icu | shaderc | libcddb | libseccomp |
argon2 | inetutils | shadow | libcdio | libsecret |
aribb24 | iproute2 | shared-mime-info | libcdio-paranoia | libsm |
at-spi2-atk | iptables | slang | libcdr | libsndfile |
at-spi2-core | iputils | snappy | libcmis | libsodium |
atk | iso-codes | sound-theme-freedesktop | libcroco | libsoup |
attr | jack | speex | libcups | libsoxr |
audit | jansson | speexdsp | libdaemon | libspiro |
avahi | jasper | spirv-tools | libdatrie | libssh |
babl | js68 | sqlite | libdbusmenu-glib | libssh2 |
bash | json-c | srt | libdbusmenu-gtk3 | libstaroffice |
blas | json-glib | startup-notification | libdca | libtar |
bluez-libs | kbd | suitesparse | libde265 | libtasn1 |
boost-libs | keyutils | sysfsutils | libdrm | libteam |
brotli | kmod | systemd | libdvbpsi | libthai |
btrfs-progs | krb5 | systemd-libs | libe-book | libtheora |
bzip2 | kyotocabinet | systemd-sysvcompat | libebml | libtiff |
c-ares | l-smash | taglib | libedit | libtirpc |
ca-certificates | lame | tar | libelf | libtommath |
ca-certificates-mozilla | lapack | tbb | libepoxy | libtool |
ca-certificates-utils | lcms2 | tdb | libepubgen | libtorrent-rasterbar |
cairo | lensfun | tepl | libetonyek | libunistring |
cantarell-fonts | less | thin-provisioning-tools | libevdev | libunwind |
clucene | licenses | tre | libevent | libupnp |
colord | linux-api-headers | tslib | libexif | libusb |
coreutils | llvm-libs | ttf-liberation | libexttextcat | libusbmuxd |
cryptsetup | lm_sensors | tzdata | libffi | libva |
curl | lpsolve | uchardet | libfontenc | libvdpau |
dav1d | lua51 | udisks2 | libfreehand | libvisio |
db | lua52 | upower | libgcrypt | libvorbis |
dbus | lua53 | usbmuxd | libgexiv2 | libvpx |
dbus-glib | luajit | util-linux | libglvnd | libwacom |
dconf | lvm2 | util-linux-libs | libgpg-error | libwebp |
desktop-file-utils | lz4 | v2r..-domain-list-community | libgudev | libwmf |
device-mapper | lzo | v2r..-geoip | libgusb | libwnck3 |
diffutils | mailcap | v4l-utils | libheif | libwpd |
dmraid | md4c | vid.stab | libibus | libwpg |
dosfstools | mdadm | virtualbox-host-modules-arch | libice | libwps |
double-conversion | mesa | vmaf | libidn | libx11 |
e2fsprogs | metis | volume_key | libidn2 | libxau |
elfutils | minizip | vte-common | libiec61883 | libxcb |
enchant | mkinitcpio | vte3 | libimobiledevice | libxcomposite |
exiv2 | mkinitcpio-busybox | vulkan-icd-loader | libindicator-gtk3 | libxcrypt |
expat | mobile-broadband-provider-info | wayland | libinput | libxcursor |
faad2 | mpfr | wayland-protocols | libixion | libxdamage |
fakeroot | mtdev | webrtc-audio-processing | libjpeg-turbo | libxdmcp |
ffmpeg | mypaint-brushes1 | wget | libkeybinder3 | libxext |
file | ncurses | which | libksba | libxfce4ui |
filesystem | ndctl | wpa_supplicant | liblangtag | libxfce4util |
findutils | neon | x264 | libldap | libxfixes |
flac | nettle | x265 | libmad | libxfont2 |
fontconfig | nm-connection-editor | xcb-proto | libmatroska | libxft |
freeglut | npth | xcb-util | libmfx | libxi |
freetype2 | nspr | xcb-util-image | libmicrohttpd | libxinerama |
fribidi | nss | xcb-util-keysyms | libmm-glib | libxkbcommon |
fuse-common | opencc | xcb-util-renderutil | libmng | libxkbcommon-x11 |
fuse2 | opencore-amr | xcb-util-wm | libmnl | libxkbfile |
fuse3 | openexr | xdg-utils | libmodplug | libxklavier |
gawk | openjpeg2 | xfsprogs | libmpcdec | libxml2 |
gc | openresolv | xkeyboard-config | libmpd | libxmu |
gcc-libs | openssl | xmlsec | libmpeg2 | libxpm |
gcr | opus | xvidcore | libmspack | libxpresent |
gdbm | orc | xxhash | libmspub | libxrandr |
gdk-pixbuf2 | p11-kit | xz | libmwaw | libxrender |
gegl | pacman | zeromq | libmypaint | libxres |
gettext | pacman-mirrorlist | zita-alsa-pcmi | libndp | libxshmfence |
giflib | pam | zita-resampler | libnetfilter_conntrack | libxslt |
glew | pambase | zlib | libnewt | libxss |
glib-networking | pango | zstd | libnfnetlink | libxt |
glib2 | parted | libnftnl | libxtst | |
glibc | pciutils | libnghttp2 | libxv | |
glslang | pcre | libnl | libxvmc | |
glu | pcre2 | libnm | libxxf86vm | |
gmp | perl | libnma | libyaml | |
gnome-themes-extra | perl-uri | libnotify | libzmf |