<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用tar或partclone備份樹(shù)莓派linux系統(tǒng)【備份包600多MB,可網(wǎng)絡(luò)備份恢復(fù)】



      前言

      • 我的樹(shù)莓派3B有兩個(gè)U盤,速度快的U盤用做日常服務(wù)運(yùn)行,以下簡(jiǎn)稱“業(yè)務(wù)U盤”。速度慢的U盤用來(lái)做救援U盤,救援U盤只是一個(gè)Lite版的Raspi OS。救援U盤平常不會(huì)插在樹(shù)莓派上。如果你不用U盤,那就假設(shè)自己有一個(gè)U盤+一張TF卡,請(qǐng)舉一反三(無(wú)非就是類似于sdb對(duì)應(yīng)mmcblk1, sdb1對(duì)應(yīng)mmcblk1p1,sdb2對(duì)應(yīng)mmcblk1p2)。
      • 備份我是使用windows的git bash(安裝git就會(huì)有一個(gè)unix命令行工具),我使用的是網(wǎng)絡(luò)備份,操作比較方便。
      • 相比分區(qū)克隆(比如dd),備份文件的體積小很多。Raspberry Pi OS Bookworm備份出來(lái)600多MB。
      • 備份恢復(fù)有兩種方法,一種是tar,一種是partclone。tar方法是文件打包,partclone是塊級(jí)別的備份(只備份有數(shù)據(jù)的塊,所以體積和tar方式差不多)
      • 本博文是作者“進(jìn)取有樂(lè)”原創(chuàng),僅發(fā)布于博客園,其他網(wǎng)站轉(zhuǎn)載請(qǐng)注明出處。



      操作注意事項(xiàng)

      1. 下面的命令操作分windows git bash執(zhí)行樹(shù)莓派root用戶執(zhí)行,樹(shù)莓派root用戶執(zhí)行是指:使用類似putty、XShell之類的工具登錄樹(shù)莓派的命令行終端,使用root用戶執(zhí)行命令。
      2. 所有操作務(wù)必謹(jǐn)慎,結(jié)合lsblk -f、 fdisk -l、 blkid之類的命令,通過(guò)大小或其他方式確認(rèn)被操作的存儲(chǔ)設(shè)備是正確的。
      3. gzip壓縮/解壓可以放在樹(shù)莓派端完成,也可以放在windows端完成。windows端cpu性能高一些。兩種方式的命令是有差異的。



      方法1:tar

      備份步驟簡(jiǎn)述

      1. 插救援U盤啟動(dòng)樹(shù)莓派,再插入業(yè)務(wù)U盤,準(zhǔn)備好環(huán)境。
      2. 備份業(yè)務(wù)U盤第一分區(qū)前面的所有扇區(qū)
      3. tar命令備份業(yè)務(wù)U盤的第一分區(qū)(啟動(dòng)分區(qū))和第二分區(qū)(根分區(qū))文件系統(tǒng)上的文件

      備份的詳細(xì)操作步驟

      1. 插救援U盤啟動(dòng)樹(shù)莓派,再插入業(yè)務(wù)U盤,準(zhǔn)備好環(huán)境。

      • 建立windows主機(jī)和樹(shù)莓派之間的ssh信任關(guān)系:

        1. windows git bash執(zhí)行:
          ssh root@192.168.1.33 # (假設(shè)我的樹(shù)莓派ip地址是192.168.1.33)。 看看是否需要輸入密碼,如果不用輸入密碼就能直接登錄樹(shù)莓派,則可以直接跳到步驟 “獲取分區(qū)情況”。

        2. 檢查救援U盤的sshd服務(wù)是否可以使用密碼、公鑰登錄root賬戶,如果不行,則在樹(shù)莓派的/etc/ssh/sshd_config的末尾增加4行:

             Match User root
                 PermitRootLogin yes
                 PasswordAuthentication yes
                 PubkeyAuthentication yes
          

          然后重啟樹(shù)莓派sshd服務(wù),樹(shù)莓派root用戶執(zhí)行:
          systemctl restart sshd.service

        3. 如果沒(méi)有ssh秘鑰,可以在windows的git bash執(zhí)行ssh-keygen命令來(lái)生成一個(gè)ssh密鑰對(duì),提示輸入密碼的時(shí)候,記得留空。

        4. 建立windows主機(jī)和樹(shù)莓派之間的ssh信任關(guān)系,使用公鑰免root密碼登錄樹(shù)莓派。操作如下:
          使用windows的git bash執(zhí)行:
          ssh-copy-id root@192.168.1.33 # 輸入root密碼,那么兩者之間的信任關(guān)系就建立了,此時(shí)后續(xù)執(zhí)行任何ssh命令都不用輸入root密碼。
          如果執(zhí)行上面命令的時(shí)候出現(xiàn)類似以下的"中間人攻擊"提示,而導(dǎo)致命令執(zhí)行失敗:

             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
             @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
             IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
             Someone could be eavesdropping on you right now (man-in-the-middle attack)!
             It is also possible that a host key has just been changed.
             The fingerprint for the ED25519 key sent by the remote host is
             SHA256:MKshLA8/djHM3kxCi9S94Mak+YIOIKbP4p+fafZcGIM.
             Please contact your system administrator.
             Add correct host key in /c/Users/XXX/.ssh/known_hosts to get rid of this message.
             Offending ECDSA key in /c/Users/XXX/.ssh/known_hosts:3
             Host key for pi has changed and you have requested strict checking.
             Host key verification failed.
          

          則可以清空known_hosts文件,消除該提示,操作如下:
          windows的git bash執(zhí)行:>/c/Users/XXX/.ssh/known_hosts #注意這里的XXX請(qǐng)?zhí)鎿Q成你的提示中實(shí)際出現(xiàn)的名字。

      • 獲取分區(qū)情況:
        樹(shù)莓派root用戶執(zhí)行:fdisk -l /dev/sdb # 我的是U盤,所以這里是/dev/sdb,如果插的是TF卡,則使用fdisk -l /dev/mmcblkX, (X表示數(shù)字)。
        回顯如下:

          Disk /dev/sdb: 115.5 GiB, 124017180672 bytes, 242221056 sectors
          Disk model: DataTraveler 3.0
          Units: sectors of 1 * 512 = 512 bytes
          Sector size (logical/physical): 512 bytes / 512 bytes
          I/O size (minimum/optimal): 512 bytes / 512 bytes
          Disklabel type: dos
          Disk identifier: 0xdf3f5459
        
          Device     Boot   Start       End   Sectors  Size Id Type
          /dev/sdb1         16384   1064959   1048576  512M  c W95 FAT32 (LBA)
          /dev/sdb2       1064960 242221055 241156096  115G 83 Linux    
        

        我們發(fā)現(xiàn):業(yè)務(wù)U盤第一分區(qū)的范圍是16384~1064959扇區(qū),第二分區(qū)起始于1064960扇區(qū),第一分區(qū)是FAT32文件系統(tǒng),第二分區(qū)根分區(qū)使用blkid查看,發(fā)現(xiàn)是ext4文件系統(tǒng)。
        上面的回顯我們把他存在windows主機(jī)中的fdisk.txt,方便后面查看。

      2. 備份業(yè)務(wù)U盤第一分區(qū)之前的所有扇區(qū)

      • 其實(shí)樹(shù)莓派3B只需要備份業(yè)務(wù)U盤0號(hào)扇區(qū)就可以了,因?yàn)镸BR分區(qū)表就是存儲(chǔ)在磁盤第0號(hào)扇區(qū)的后64字節(jié)。樹(shù)莓派3B的OS不像PC的linux系統(tǒng),沒(méi)有g(shù)rub2在LBA1-62邏輯扇區(qū)寫入數(shù)據(jù)。至于樹(shù)莓派4、5我不清楚,所以建議大家保守點(diǎn),把第一分區(qū)之前的扇區(qū)都備份下來(lái)。windows的git bash執(zhí)行:ssh root@192.168.1.33 "dd if=/dev/sdb count=16384" |dd of=udisk.dd

      • 注意,上面命令中/dev/sdb后沒(méi)有數(shù)字,如果你的是TF卡,/dev/sdb就替換成類似于/dev/mmcblkX,千萬(wàn)不能寫成/dev/mmcblkXpY (這里的X和Y表示數(shù)字)。
        此時(shí)windows主機(jī)上,就出現(xiàn)了一個(gè)udisk.dd的文件,這個(gè)文件是業(yè)務(wù)U盤第一分區(qū)之前的16384個(gè)扇區(qū)的備份,也就是U盤的第0扇區(qū)到第16384扇區(qū)的備份
        此處16384這個(gè)數(shù)字怎么來(lái)的,請(qǐng)看前面步驟。樹(shù)莓派使用不同操作系統(tǒng)這個(gè)數(shù)字會(huì)有差異,有些操作系統(tǒng)是8192個(gè)扇區(qū)。

      3. tar命令備份業(yè)務(wù)U盤的第一分區(qū)和第二分區(qū)文件系統(tǒng)上的所有文件

      1. 樹(shù)莓派上掛載好業(yè)務(wù)U盤的第一分區(qū)和第二分區(qū),樹(shù)莓派root用戶執(zhí)行:
        cd /mnt
        mkdikr bootfs rootfs
        mount /dev/sdb1 bootfs
        mount /dev/sdb2 rootfs

      2. 備份業(yè)務(wù)U盤的第一分區(qū)文件:
        windows的git bash執(zhí)行:
        ssh root@192.168.1.33 "tar -C /mnt/bootfs --one-file-system -zcpf - ." |dd of=bootfs.tar.gz bs=4K # 此時(shí),windows主機(jī)上,就出現(xiàn)了一個(gè)文件bootfs.tar.gz, 該文件是業(yè)務(wù)U盤第一分區(qū)里面所有文件的tar.gz壓縮包(壓縮是在樹(shù)莓派端完成的)。當(dāng)然你也可以把gzip壓縮放在windows電腦端完成(tar命令去掉-z選項(xiàng),不用dd命令):ssh root@192.168.1.33 "tar -C /mnt/bootfs --one-file-system -cpf - ." |gzip -c >bootfs.tar.gz

      3. 備份業(yè)務(wù)U盤的第二分區(qū)(根分區(qū))文件:
        windows的git bash執(zhí)行:
        ssh root@pi "tar -C /mnt/rootfs --one-file-system --exclude=./dev/* --exclude=./lost+found -zcpf - ." |dd of=rootfs.tar bs=4K # 此處的--exclude=./dev/*的星號(hào)是指排除業(yè)務(wù)U盤根分區(qū)/dev目錄下的所有文件,而不排除/dev目錄本身
        此時(shí),windows主機(jī)上,就出現(xiàn)了一個(gè)文件rootfs.tar.gz, 該文件是業(yè)務(wù)U盤第二分區(qū)(根分區(qū))里面所有文件的tar.gz壓縮包
        至此,備份完成!!,windows主機(jī)上,存在4個(gè)文件:

              fdisk.txt   # 業(yè)務(wù)U盤的分區(qū)信息
              udisk.dd    # 業(yè)務(wù)U盤第0個(gè)扇區(qū)至第一個(gè)分區(qū)之前的所有扇區(qū)備份文件
              bootfs.tar.gz  # 業(yè)務(wù)U盤第一分區(qū)的所有文件壓縮包
              rootfs.tar.gz  # 業(yè)務(wù)U盤第二分區(qū),也就是根分區(qū)的所有文件壓縮包
      

      恢復(fù)步驟簡(jiǎn)述

      1. 插救援U盤啟動(dòng)樹(shù)莓派,再插入業(yè)務(wù)U盤,準(zhǔn)備好環(huán)境。
      2. dd恢復(fù)業(yè)務(wù)U盤第一分區(qū)之前的所有扇區(qū)
      3. 在業(yè)務(wù)U盤的第一分區(qū)和第二分區(qū)上創(chuàng)建文件系統(tǒng)
      4. 掛載分區(qū),并用tar命令恢復(fù)業(yè)務(wù)U盤兩個(gè)分區(qū)的文件
      5. 修復(fù)cmdline.txt和fstab中的UUID

      恢復(fù)的詳細(xì)操作步驟

      1. 查看業(yè)務(wù)U盤情況

      插救援U盤啟動(dòng)樹(shù)莓派,再插入業(yè)務(wù)U盤,準(zhǔn)備好環(huán)境。
      樹(shù)莓派上,確認(rèn)業(yè)務(wù)U盤已經(jīng)識(shí)別。樹(shù)莓派root用戶執(zhí)行:
      fdisk -l /dev/sdb # 回顯如下:

              Disk /dev/sdb: 115.5 GiB, 124017180672 bytes, 242221056 sectors
              Disk model: DataTraveler 3.0
              Units: sectors of 1 * 512 = 512 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disklabel type: dos
              Disk identifier: 0xdf3f5459
              
              Device     Boot Start       End   Sectors   Size Id Type
              /dev/sdb1        8192 242221055 242212864 115.5G  7 HPFS/NTFS/exFAT
      

      樹(shù)莓派root用戶執(zhí)行:
      blkid # 命令回顯如下:

                 /dev/sda2: UUID="e85df659-e51e-41f4-8cec-6954e76db4e1" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="eaf036ba-02"
                 /dev/sda3: UUID="7DEF-F9C3" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="eaf036ba-03"
                 /dev/sda1: UUID="A039-117D" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="eaf036ba-01"
                 /dev/sdb1: UUID="7ECD-3E3C" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="df3f5459-01"
      

      從回顯看,我的業(yè)務(wù)U盤被借走,居然全部格式化了,整個(gè)業(yè)務(wù)U盤變成一個(gè)exfat分區(qū)了。

      2.恢復(fù)U盤第一分區(qū)之前的所有扇區(qū)

      windows的git bash執(zhí)行:
      dd if=udisk.dd |ssh root@192.168.1.33 "dd of=/dev/sdb" # 從windows主機(jī)的udisk.dd文件恢復(fù)到樹(shù)莓派的/sdb,這里sdb后面沒(méi)有數(shù)字,因?yàn)檫@里對(duì)整個(gè)U盤的前16384個(gè)扇區(qū)進(jìn)行操作。
      樹(shù)莓派root用戶執(zhí)行:
      lsblk # 執(zhí)行l(wèi)sblk,我們發(fā)現(xiàn)業(yè)務(wù)U盤的分區(qū)變成了兩個(gè)了, 命令回顯如下:

                 NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
                 sda      8:0    1   233G  0 disk
                 ├─sda1   8:1    1   512M  0 part /boot/firmware
                 ├─sda2   8:2    1    21G  0 part /
                 └─sda3   8:3    1 211.5G  0 part
                 sdb      8:16   1 115.5G  0 disk
                 ├─sdb1   8:17   1   512M  0 part
                 └─sdb2   8:18   1   115G  0 part
      

      3.在業(yè)務(wù)U盤的第一分區(qū)和第二分區(qū)上創(chuàng)建文件系統(tǒng):

      樹(shù)莓派上root用戶執(zhí)行:
      mkfs.vfat /dev/sdb1 # 業(yè)務(wù)U盤第一個(gè)分區(qū)建立vfat文件系統(tǒng)
      mkfs.ext4 /dev/sdb2 # 業(yè)務(wù)U盤第二個(gè)分區(qū)建立ext4文件系統(tǒng)

      4.tar命令恢復(fù)兩個(gè)分區(qū)的文件:

      先掛載兩個(gè)分區(qū),樹(shù)莓派上用root用戶執(zhí)行:
      cd /mnt
      mount /dev/sdb1 bootfs
      mount /dev/sdb2 rootfs
      使用tar命令恢復(fù)分區(qū)文件,windows的git bash執(zhí)行:
      dd if=bootfs.tar.gz bs=4K |ssh root@192.168.1.33 "tar --numeric-owner -C /mnt/bootfs -zpxf -" # 恢復(fù)第一分區(qū), gzip解壓是在樹(shù)莓派端完成,如果想在windows端完成解壓,則應(yīng)該寫成 gzip -dc bootfs.tar.gz |ssh root@192.168.1.33 "tar --numeric-owner -C /mnt/bootfs -pxf -"
      dd if=rootfs.tar.gz bs=4K |ssh root@192.168.1.33 "tar --numeric-owner -C /mnt/rootfs -zpxf -" # 恢復(fù)第二分區(qū), 時(shí)間有點(diǎn)久,gzip解壓是在樹(shù)莓派端完成的。如果想要在windows端做gzip解壓,請(qǐng)參考上一條命令注釋。

      5. 修復(fù)cmdline.txt和fstab中的UUID

      1. 樹(shù)莓派root用戶執(zhí)行:
        blkid # 查看分區(qū)的UUID或PARTUUID。回顯如下:

         /dev/sdb2: UUID="0a6f7f53-6091-4310-9adf-c1704a8991a6" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="df3f5459-02"
         /dev/sdb1: PARTUUID="df3f5459-01"
        
      2. 查看業(yè)務(wù)U盤第一分區(qū)的cmdline.txt文件和第二分區(qū)的fstab文件
        樹(shù)莓派使用root用戶執(zhí)行:
        cat /mnt/bootfs/cmdline.txt # 回顯如下:

             console=serial0,115200 console=tty1 root=PARTUUID=eaf036ba-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=CN
        

        我們發(fā)現(xiàn)/mnt/bootfs/cmdline.txt和/etc/fstab文件中的PARTUUID值和blkid顯示的值不同。那么我們只需要把上面文件中的PARTUUID修改成blkid命令顯示的真實(shí)值就可以了。
        /mnt/bootfs/cmdline.txt文件中的root=PARTUUID=XXXXXXXX-YY表示過(guò)了initrd啟動(dòng)階段后,找PARTUUID值為XXXXXXXX-YY的分區(qū)作為根分區(qū)來(lái)啟動(dòng)操作系統(tǒng)。文件中的這部分內(nèi)容要修改成blkid命令回顯的實(shí)際值。所以修改后如下:
        root=PARTUUID=df3f5459-02。 #當(dāng)然,如果你不想要PARTUUID,而是想要使用UUID來(lái)指定操作系統(tǒng)根分區(qū)也可以:root=UUID=0a6f7f53-6091-4310-9adf-c1704a8991a6
        /mnt/rootfs/etc/fstab文件的修改同理。至此樹(shù)莓派操作系統(tǒng)的恢復(fù)操作全部完成



      方法2:partclone

      備份

      備份步驟的前兩步(建立windows主機(jī)和樹(shù)莓派信任關(guān)系、dd備份業(yè)務(wù)U盤第一分區(qū)之前的所有扇區(qū))和方法1的操作一樣,可以參考前面。
      樹(shù)莓派上root用戶執(zhí)行:
      lsblk -f # 確認(rèn)業(yè)務(wù)U盤是否掛載,如果掛載了,就用umount卸載業(yè)務(wù)U盤,防止后面的備份過(guò)程中有寫入操作。同時(shí)這里我們也能看出業(yè)務(wù)U盤第一個(gè)分區(qū)是vfat文件系統(tǒng)。所以備份第一個(gè)分區(qū)我們要使用partclone.vfat命令

      windows的git bash執(zhí)行:
      ssh root@192.168.1.33 "partclone.vfat -c -s /dev/sdb1" |gzip -c >bootfs.vfat.partclone.gz # 備份業(yè)務(wù)U盤第一分區(qū),gzip壓縮是在windows端完成的。如果你想在樹(shù)莓派端完成gzip壓縮,則要寫成:ssh root@192.168.1.33 "partclone.fat32 -c -s /dev/sdb1 |gzip -c " | dd of=bootfs.fat32.partclone.gz bs=4K
      ssh root@192.168.1.33 "partclone.ext4 -c -s /dev/sdb2" |gzip -c >rootfs.ext4.partclone.gz # 備份業(yè)務(wù)U盤第二分區(qū)

      恢復(fù)

      恢復(fù)的前3個(gè)步驟和方法1的一樣,可以參考前面。
      windows的git bash執(zhí)行:
      gzip -dc bootfs.vfat.partclone.gz |ssh root@192.168.1.33 "partclone.vfat -Cr -o /dev/sdb1" # 恢復(fù)業(yè)務(wù)U盤第一分區(qū),解壓縮是在windows端完成的
      gzip -dc rootfs.ext4.partclone.gz |ssh root@192.168.1.33 "partclone.ext4 -r -o /dev/sdb2" # 恢復(fù)業(yè)務(wù)U盤第二分區(qū)
      修復(fù)業(yè)務(wù)U盤的UUID或PART-UUID可以參考方法1的步驟,這里不贅述。



      業(yè)務(wù)U盤壞了,怎么辦?

      簡(jiǎn)單,自己找一個(gè)好的U盤或TF卡,然后使用parted建一個(gè)fat32分區(qū)和一個(gè)ext4分區(qū),分別用于啟動(dòng)分區(qū)和根分區(qū),掛載好兩個(gè)分區(qū),然后把備份文件用tar命令釋放到這兩個(gè)新分區(qū),修復(fù)uuid即可。(我的是樹(shù)莓派3B,沒(méi)用到grub2。樹(shù)莓派4、5是否用到grub2?如果用到grub2,那么最后要記得重新安裝grub2)

      posted on 2025-06-14 18:21  進(jìn)取有樂(lè)  閱讀(180)  評(píng)論(1)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 国内少妇人妻偷人精品视频| 国产午夜成人久久无码一区二区| 六安市| 国产精品成人午夜久久| 精品国产精品中文字幕| 动漫av网站免费观看| 动漫AV纯肉无码AV电影网| 国产97人人超碰CAO蜜芽PROM| 美女黄网站人色视频免费国产| 亚洲国模精品一区二区| 亚洲欧洲日产国产 最新| 狠狠人妻久久久久久综合九色| 美女午夜福利视频一区二区| 青青草原国产精品啪啪视频 | 99久久99这里只有免费费精品| 精品国产高清中文字幕| 日日躁狠狠躁狠狠爱| 夜夜爽77777妓女免费看| japanese人妻中文字幕| 国产精品青草久久久久福利99| 中文国产日韩欧美二视频| 中文字幕精品无码一区二区| 廉江市| 怡红院一区二区三区在线| 产综合无码一区| 91久久性奴调教国产免费| 亚洲夜色噜噜av在线观看| 亚洲人成人伊人成综合网无码| 免费无码一区无码东京热| 亚洲中文字幕无码久久2017 | 亚洲va中文字幕无码久久不卡| 影音先锋女人AA鲁色资源| 亚洲成人一区二区av| 精品人妻系列无码天堂| 日韩在线视频一区二区三| 阳春市| 黑森林福利视频导航| 人妻体内射精一区二区三区| 毛片久久网站小视频| 视频一区视频二区在线视频| 拉孜县|