[ Content contribution] 使用备份的filesystem.squashfs还原系统
Tofloor
poster avatar
酷谷的谷子
deepin
2024-06-25 20:29
Author

首先使用一个自带LIVE的Linux镜像备份怎个系统,如果有其他分区可以分别备份

备份:

#!/bin/bash
# -comp xz 备份使用 xz压缩比高
# 需要备份的分区路径
ABC="/media/i8520/03904665-c013-4606-9d91-edc0edf656a1"
sudo mksquashfs ${ABC} filesystem.squashfs -comp xz

还原:

参考教程 https://bbs.deepin.org/zh/post/273875

首先 有一个fat32 分区标识boot,esp 分给6G把这样还可以放一个自己制作的Linux live系统

解压 filesystem.squashfs 系统备份到指定分区路径,这个分区必须是干净的 使用 EXIT4分区格式

#!/bin/bash
#/media/i8520/os 解压到的分区路径
#/home/i8520/桌面/filesystem.squashfs ,这个是squashfs文件路径
sudo unsquashfs -d /media/i8520/os -f /home/i8520/桌面/filesystem.squashfs

在解压出的/media/i8520/os根目录,把boot或者EFI分区分别重命名boot_Lock EFI_Lock,

然后创建一个文件夹用来boot_ boot EFI

修改 etc/fstab 里面的根分区为现在分区的UUID,然后在fstab添加挂载FAT32引导分区

#fat32
UUID=6882-5765  /boot_   vfat   users,rw,umask=111,dmask=000,uid=1000    0  0
/boot_/boot /boot none defaults,bind 0 0
/boot_/EFI  /EFI  none defaults,bind 0 0

把原来的内核和引导文件复制打破fat32 分区BOOT目录里面

initrd.img-5.15.0-112-generic
vmlinuz-5.15.0-112-generic

在fat32 分区BOOT/GRUB目录创建引导菜单grub.cfg

set timeout=5
set default=1
set fallback=1
set color_normal=white/black
set menu_color_normal=white/black
set color_highlight=white/black
export color_normal menu_color_normal color_highlight;
#----------------------
#加载文件系统支持
insmod part_gpt
insmod part_msdos
insmod fat
insmod ntfs
insmod ext2
insmod exfat
insmod btrfs
insmod gfxterm
insmod png
insmod all_video
insmod iso9660
insmod udf
#------------------------
if [ "$grub_platform" = "pc" ]; then
    insmod all_video
	    insmod vbe
    insmod vga
elif [ "$grub_platform" = "efi" ]; then
    insmod efi_gop
    insmod efi_uga

fi
#设置显示模式
insmod font
if loadfont ${prefix}/Fonts/unicode.pf2; then
	set gfxmode=auto
    set gfxpayload=keep
	export gfxmode
	insmod all_video
	insmod video_bochs
	insmod video_cirrus
	insmod font
	insmod gfxterm
	insmod gfxmenu
	insmod gettext
	insmod jpeg
	insmod png
	if terminal_output gfxterm; then

		set locale_dir=/boot/grub/Locale/
		set lang=zh_CN
		export lang
	fi
fi
#------------------------
#设置背景图片 boot/gurb/image
terminal_output  gfxterm
background_image $prefix/image/TETER.png
#------------------------
#启动linux LIVE
    menuentry "Mint 21.3 LIVE 镜像系统" -class gnu-linux -class gnu -class os {
      echo ""
      echo "正在启动 Mint 21.3 LIVE 镜像系统......"
      set gfxpayload=keep
      insmod xzio
      set isofile=/pe/LinuxMint21.2/VM17-Mint-21.3-DOCKER-SMB.iso
      search --file --no-floppy --set=root /boot/grub/MYi8520
      loopback loop $isofile
      linux /pe/LinuxMint21.2/vmlinuz boot=casper hostname=DOCKER iso-scan/filename=$isofile
      locales=zh_CN.UTF-8
      initrd /pe/LinuxMint21.2/initrd.lz
    }
#启动linux
    menuentry "Mint 21.3 系统" --class linuxmint --class gnu-linux --class gnu --class os {
      echo ""
      echo "正在启动 Mint 21.3 系统......"
      insmod part_msdos
      insmod xzio
      #这个是fat32引导分区 gpt分区把msdos1 改成gpt1还有就是hd0排序这个你自己试试hd0 hd1以此类推
      set root='hd0,msdos1'
      #quiet splash
      #UUID=系统分区的UUID
      linux   /boot/vmlinuz-5.15.0-112-generic root=UUID=93197d75-6a5d-4de8-a03e-76dc3a514a76 ro
      initrd  /boot/initrd.img-5.15.0-112-generic
    }
  
#启动Windows
if [ "$grub_platform" = "pc" ]; then
    # BIOS 引导配置
    menuentry "USM 系统总裁PE" --class=windows --class=os --hotkey=1 {
      echo ""
      echo "正在启动 USM 系统总裁PE....."
      insmod ntldr
      search --file --no-floppy --set=root /boot/grub/MYi8520
      ntldr ($root)/boot/grub/BOOTMGR
    }
elif [ "$grub_platform" = "efi" ]; then
    # EFI 引导配置
    menuentry "USM 系统总裁PE" --class=windows --class=os --hotkey=1 {
      echo ""
      echo "正在启动 USM 系统总裁PE....."
      search --file --no-floppy --set=root /boot/grub/MYi8520
      terminal_output console
      chainloader ($root)/EFI/microsoft/boot/bootmgfw.efi
    }
fi

Reply Favorite View the author
All Replies
浪云
deepin
2024-07-03 10:33
#1

我也是使用备份的filesystem.squashfs还原系统

Reply View the author