วิธีการสำรองข้อมูล (WSL) ระบบย่อย Linux สำหรับ Windows 10 ก่อนที่ระบบจะรีเซ็ตหรือติดตั้งใหม่


24

ปัญหาของฉันคือฉันต้องรีเซ็ตหรือติดตั้ง windows ใหม่เนื่องจากปัญหาบางอย่าง แต่ฉันใช้เวลามากในการกำหนดค่า WSL เพื่อการพัฒนาและไม่ต้องการสูญเสียมัน

มีวิธีใดบ้างในการสำรองข้อมูล WSL ทั้งหมดด้วยการตั้งค่าและโมดูลที่ติดตั้งปลั๊กอินผู้ใช้และอื่น ๆ และคืนค่าหลังจากรีเซ็ตหรือติดตั้ง windows ใหม่ ฉันค้นหาหัวข้อนี้มาก แต่ฉันไม่พบข้อมูลที่เป็นประโยชน์

มิฉะนั้นหากไม่มีวิธีสำรองข้อมูล windows 10 reset จะลบ WSL ทั้งหมดหรือไม่


%USERPROFILE%/AppData/Local/lxssฉันคิดมันเป็นเพียงสำรอง คุณเคยลองไหม
Ramhound

ใช่ฉันพยายาม แต่มันใช้งานได้เพียงบางส่วนด้วยข้อผิดพลาดมากมาย
emipac

คำตอบ:


15

สำรองข้อมูลอย่างไร?

ไม่ว่าจะด้วยวิธีใดจำนวนหนึ่ง แต่วิธีปฏิบัติทั่วไปอย่างหนึ่งคือการใช้ tar เพื่อสร้างไฟล์เก็บถาวรของไฟล์ที่คุณต้องการสำรองข้อมูล (เพื่อติดตั้งใหม่ทุกอย่างเมื่อคุณสร้างสภาพแวดล้อมของคุณขึ้นมาใหม่) การเขียนbackup.shสคริปต์อย่างง่ายควรทำให้การสำรองข้อมูลซ้ำ ๆ ตามกำหนดเวลาง่ายขึ้น

จะสำรองข้อมูลอะไร

การกำหนดค่าส่วนใหญ่ของคุณจะถูกเก็บไว้ในไฟล์ Linux .___ config ซึ่งมักจะอยู่ใน ~ / โฟลเดอร์ของคุณ คุณอาจต้องการสำรองข้อมูล/etc/ssh/ssh_configและไฟล์กำหนดค่าระบบอื่น ๆ ที่คล้ายกัน แต่ระวังไฟล์กำหนดค่าที่ซับซ้อนที่มีคีย์ / data / etc เฉพาะอินสแตนซ์

คุณสามารถสร้างรายการแพ็กเกจ aptโดยใช้dpkg-query -f '${binary:Package}\n' -Wและสามารถสะท้อนเป็นไฟล์ซึ่งคุณสามารถสำรองข้อมูลได้

จะสำรองที่ไหน

จากนั้นคุณสามารถคัดลอกไฟล์เก็บถาวร tar เหล่านี้ไปยังตำแหน่งอื่น เราขอแนะนำให้คัดลอกลงในโฟลเดอร์ที่ใช้งานได้กับ Windows (เช่น/mnt/c/backups) ซึ่งคุณสามารถคัดลอกไปยัง OneDrive, DropBox, HDD ภายนอก, FTP ที่อื่น ฯลฯ

HTH


22

Windows 10 v1903 มีคำสั่งการส่งออก / นำเข้า WSL ในตัว โดยเฉพาะwsl --exportซึ่งผลิตtarและซึ่งนำเข้าส่งออกก่อนหน้านี้wsl --import tarจากนั้นคุณสามารถย้ายไฟล์นี้ระหว่างคอมพิวเตอร์

นอกจากนี้คุณยังสามารถระบุ stdin / stdout ด้วยซึ่งจะช่วยให้คุณโดยตรงโอนไปยังเครื่องอื่นและนำเข้าโดยใช้เปลือกระยะไกลเช่น-ssh


wsl --importยังสามารถนำเข้าtar.gzไฟล์ คำสั่งเหล่านั้นเปิดตัว%SystemRoot%\System32\lxss\tools\bsdtarไบนารี ELF64 ภายใน
Biswapriyo

เพื่อช่วยให้ผู้ที่มีอาการทางประสาท: wsl --exportอาจใช้เวลานานกว่าที่คุณคาดหวัง บนเครื่องของฉันมันใช้เวลาประมาณ 10 นาทีในการเขียนเพียงไม่กี่เมกะไบต์จากนั้นจึงเขียนไฟล์ 3.2 GB tar ขึ้นมา
scruss

2

ในการสำรองและกู้คืนการแจกจ่าย WSL linux ที่สมบูรณ์คุณอาจลอง (1) สร้าง.tar.gzระบบไฟล์ของคุณและ (2) กู้คืนสำเนาโดยใช้เครื่องมือติดตั้งที่มีในอินเทอร์เน็ต:

  • LxRunOfflineมีตัวเลือกในการทำซ้ำและติดตั้งการแจกแจงลินุกซ์ที่กำหนดเอง คุณสามารถติดตั้ง distro จาก.tar.gzไฟล์
  • WSL-DistroLauncherrootfs.tar.gzช่วยให้คุณสามารถติดตั้งกระจายจากที่
  • WSLInstallอีกตัวติดตั้ง linux สำหรับ WSL

กำลังสร้างการสำรองข้อมูล

จากรายงานปัญหาคุณสามารถสร้างข้อมูลสำรองโดยใช้tarใน WSL โปรดทราบว่าคุณต้องละเว้นบางโฟลเดอร์ (เช่น / mnt) ในสำเนา

# cd /
# tar vzcpf /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.tar.gz --exclude=/proc --exclude=/dev --exclude=/mnt --exclude=/media --exclude=/lost+found  --exclude=/tmp --exclude=/sys  --exclude=/run / > /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.log 2> /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.error

คุณต้องสร้างหรือย้ายไฟล์สำรองในภายหลังไปยัง/mnt/cโฟลเดอร์ย่อยที่ถูกต้อง /mnt/c/tmpในตัวอย่างไฟล์ที่ถูกสร้างขึ้นลงใน


การกู้คืนโดยใช้ lxRunOffline

ใช้lxRunOfflineคุณสามารถติดตั้ง tar ที่เป็นผลลัพธ์ในการแจกจ่ายใหม่ใน WSL โดยใช้บรรทัดคำสั่ง Windows

# lxrunoffline install -n <distro name> -d <installation folder> -f <file>
C:\wsl> lxrunoffline install -n mybackup -d c:\wsl\mybackup -f c:\tmp\ubuntu_20180729_00.tar.gz

เพื่อเรียกใช้การสำรองข้อมูลคุณอาจใช้ lxRunOffline เดียวกัน

# lxrunoffline run -n <distro name> -w
C:\wsl> lxrunoffline run -n mybackup  -w

การกู้คืนโดยใช้ DistroLauncher

มีปืนกลจำนวนมากสำหรับลินุกซ์จะขึ้นอยู่กับตัวอย่างเช่นไมโครซอฟท์ ฉันคิดว่าคุณอาจลองรุ่น Yuk7

launcher.exeคุณต้องดาวน์โหลดไฟล์และการจัดจำหน่าย ในการใช้ไฟล์การแจกจ่ายเดียวกันกับที่กล่าวถึงข้างต้นคุณต้องเปลี่ยนชื่อไฟล์สำรองrootfs.tar.gzและตัวเรียกใช้เป็นชื่อการแจกจ่ายที่คุณต้องการ ในภายหลังคุณต้องเรียกใช้ตัวเรียกใช้งานในฐานะผู้ดูแลระบบ (ฉันได้รับข้อผิดพลาดในการใช้งานเป็นผู้ใช้ปกติ)

c:\wsl> ren launcher.exe mybackup.exe
c:\wsl> ren .\ubuntu_20180729_00.tar.gz rootfs.tar.gz
c:\wsl> .\mybackup.exe

ครั้งแรกที่คุณเรียกใช้ตัวเรียกใช้งานมันจะติดตั้งและเรียกใช้การกระจาย ครั้งต่อไปมันรันการแจกแจงลินุกซ์


ขอขอบคุณ! - ตัวเรียกใช้wsdlของYuk7ล้มเหลวในการเปิดตัวและฉันไม่เห็นปัญหา lxRunOffline นี่เป็นที่เดียวที่ฉันพบว่าบันทึกคำสั่ง tar ที่ถูกต้องซึ่งแก้ไขปัญหา wsldl ของฉัน
AndrewD

0

แม้ว่าคำตอบของไจจะสมบูรณ์แบบ แต่อย่างใด/tmpโฟลเดอร์จะไม่ถูกสร้างขึ้นใหม่เมื่อใช้ launcher.exe สำหรับติดตั้ง tar ball (ฉันพูดถึงการย้ายการติดตั้ง WSL จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งโดยเฉพาะ)

ดังนั้นเราต้องสร้าง/tmpและกำหนดสิทธิ์ที่จำเป็น

วิธีการหนึ่งที่เหมาะกับฉันคือ:

https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/

# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.