首页 > 系统相关 >linux实现macos的timeMachine系统备份

linux实现macos的timeMachine系统备份

时间:2025-01-18 15:56:23浏览次数:1  
标签:macos 子卷 grub btrfs sudo linux home timeMachine btrfsd

在上一篇文章中,我们详细介绍了Btrfs文件系统的基本使用方法和核心原理。本文将重点讲解如何利用Btrfs的特性来实现系统备份功能。

实现原理其实很简单:Linux内核支持直接从Btrfs的子卷(subvolume)启动系统。基于这个特性,我们可以通过计划任务定期为系统根目录创建快照,再配合btrfs-linux自动生成对应的GRUB启动项,从而实现完整的系统备份和恢复功能。

为了简化操作流程,我推荐使用TimeShift或Snapper这类工具。它们提供了图形化界面,让系统备份和恢复变得更加直观和便捷。

准备工作

timeshift需要根子卷(@)以及home子卷(@home)这两个特殊的子卷。但是Ubuntu在默认安装时候并不会创建这两个子卷。所以我们要手工创建一下。

在安装Ubuntu时,强烈建议将/boot目录单独分区。这是因为GRUB在读取grub.cfg配置文件时不支持Btrfs子卷机制。如果不单独分区,当系统挂载到@子卷后,新生成的grub.cfg会位于@子卷的/boot目录下,而不是原始根目录的/boot下,导致GRUB引导配置失效。如果你在安装时未进行单独分区,请不用担心,后续章节会详细介绍解决方案。

在这里默认你已经将ubuntu安装到btrfs中。

步骤:

  1. 创建@子卷。
    sudo btrfs subvolume snapshot / /@
  2. 创建@home子卷
    sudo btrfs subvolume create /@home
  3. 复制home文件夹的内容到@home子卷
    sudo cp -a /home/* /@home
  4. 修改grub,在linux启动参数中新增btrfs子卷
    修改/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT这行追加rootflags=subvol=@
  5. 执行 sudo update-grub更新grub引导
  6. 重启
  7. 修改/etc/fstab,直接原有的 / 挂载上修改,删除subvolid=x字段,如果存在subvol,否则追加subvol=/改成/@。如下所示
/dev/disk/by-uuid/uuid / btrfs defaults,subvol=/@ 0 1
  1. 复制上面一行的内容,将/改成/home ,subvol=/@改成/@home,目的为了挂载@home子卷
/dev/disk/by-uuid/uuid /home btrfs defaults,subvol=/@home 0 1
  1. 重启

Timeshift

首先安装Timeshift
sudo apt install timeshift
按照下一步下一步,开启timeshift备份即可。
在这里插入图片描述

grub备份

下面我们讲解一下,如何将btrfs的备份通过grub-btrfs生成grub参数。

参考安装grub-btrfs
https://github.com/Antynea/grub-btrfs

使用make && make install即可安装。

在安装过程中需要你手动安装inotify。
sudo apt-get install inotify-tools

启动grub-btrfs服务。
sudo systemctl start grub-btrfsd

检查grub-btrfs的服务状态 sudo systemctl status grub-btrfsd
检查一下如果出现这种,就代表设置成功

 grub-btrfsd.service - Regenerate grub-btrfs.cfg
     Loaded: loaded (/etc/systemd/system/grub-btrfsd.service; disabled; preset:>
     Active: active (running) since Sat 2025-01-18 15:36:57 CST; 1min 56s ago
   Main PID: 4862 (bash)
      Tasks: 3 (limit: 18694)
     Memory: 1.3M (peak: 4.1M)
        CPU: 48ms
     CGroup: /system.slice/grub-btrfsd.service
             ├─4862 bash /usr/bin/grub-btrfsd --syslog -t
             ├─4867 bash /usr/bin/grub-btrfsd --syslog -t
             └─4873 inotifywait -q -q -e create -e delete /run/timeshift

最终在系统启动中的效果如下:
在这里插入图片描述

标签:macos,子卷,grub,btrfs,sudo,linux,home,timeMachine,btrfsd
From: https://www.cnblogs.com/potatso/p/18678521

相关文章

  • Nexpose 7.3.0 for Linux & Windows - 漏洞扫描
    Nexpose7.3.0forLinux&Windows-漏洞扫描Rapid7on-premVulnerabilityManagement,releasedJan15,2025请访问原文链接:https://sysin.org/blog/nexpose-7/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgNexposeVulnerabilityScanner您的本地漏洞扫描......
  • 软件包管理器 ---【linux基础开发工具】
    文章目录一、软件包管理器1、什么是软件包2、Linux软件生态3、......
  • 首发 最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Windows/Linux下载
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关重要。......
  • Linux 常用命令——文件目录篇(保姆级说明)
    文件及目录类列出当前目录中的文件和子目录(ls)ls[-参数][name...]#列出所有根目录ls/#列出所有txt文件ls*.txt参数:-a显示所有文件及目录(.开头的隐藏文件也会列出)-d只列出目录(不递归列出目录内的文件)。-l以长格式显示文件和目录信息,包括权限、所有......
  • Linux性能调优:技术宅的魔法秘籍
    各位观众朋友们,大家好!今天,咱们来聊聊一个听起来就特别技术范儿,但实际上和我们每个人的生活都息息相关的话题——Linux系统性能调优。别急,我知道你们可能已经在心里默念:“这不就是那些技术宅才关心的事儿嘛,跟我有啥关系?”别走开,我保证,这事儿比你想象的有意思多了,而且说不定还......
  • 【Linux系统】深刻理解软硬链接
    1、操作层面软链接先说结论:软链接本质是一个独立的文件先创建一个文件file.txt再创建一个软链接:命令ln-sfile.txtfile-soft.link(后者链接前者)软链接的名字和后缀随便取的使用命令ls-li查看,你可以发现两个文件有着不同的inode号,即可证明这两个属于不同......
  • 蓝易云 - Linux系统中常见的远程管理协议!
    Linux系统中常见的远程管理协议有以下几种:1.SSH(SecureShell):SSH是一种安全的远程登录协议,用于在网络上安全地远程登录到Linux服务器。它提供了加密的传输和身份验证机制,可以防止数据在传输过程中被拦截和篡改。SSH使用用户名和密码或公钥认证来验证用户身份,并允许用户在远程......
  • Linux SSH服务配置
    在Linux中配置SSH(SecureShell)服务,通常涉及安装SSH服务器软件(OpenSSH是最常见的选择)、修改配置文件以符合特定需求、管理密钥对以及确保服务的安全性。下面是详细的步骤指南:1.安装OpenSSH服务器大多数Linux发行版已经预装了OpenSSH服务器(sshd),但如果没有,可以通过包管理器安装。例......
  • 深入理解 Linux systemd 单元类型及配置详解
    深入理解Linuxsystemd单元类型及配置详解在Linux系统中,systemd是一种强大的初始化系统和服务管理工具,它通过**单元(Unit)**来管理服务、文件系统、设备等。systemd支持多种单元类型,如服务单元(.service)、目标单元(.target)、挂载单元(.mount)、设备单元(.device)、计时单元(.t......
  • Linux系列(一)
    一、什么是LinuxLinux是一套免费使用和自由传播的操作系统。说到操作系统,大家比较熟知的应该就是Windows和MacOS操作系统,我们今天介绍的Linux也是一款操作系统。   二、为什么要学Linux那么我们为什么要学习Linux呢,主要出于两个方面的原因。1).企业用人要求以......