备份整个操作系统

Avi*_*ane 22 backup restore

我必须格式化整个磁盘并重新安装 Ubuntu。

我在当前系统上安装了很多软件。我也必须重新安装所有这些更新、驱动程序和应用程序。

有什么方法可以制作我安装的 Ubuntu 的 .iso 映像以及其中的所有软件、首选项、驱动程序等吗?

有什么方法可以备份我的整个操作系统及其所有软件、驱动器、更新和所有内容吗?

bin*_*inW 23

您可以做的是备份您的主目录并保存您已安装的所有软件包的列表。要保存已安装软件的列表,请使用以下命令:

sudo dpkg --get-selections > package_list
Run Code Online (Sandbox Code Playgroud)

这将创建一个文件,其中包含安装在该系统上的所有包/软件的列表。您需要将此文件备份到安全的地方。

然后当你在你的机器上重新安装 ubuntu 时你可以使用以下命令来安装所有这些软件

sudo dpkg --set-selections < packages_list
Run Code Online (Sandbox Code Playgroud)

此命令不会安装任何东西。它只会标记要安装的软件包。要安装它们,请运行以下命令:

sudo apt-get -u dselect-upgrade
Run Code Online (Sandbox Code Playgroud)

这将需要一些时间才能完成,因为您的系统将下载并安装所有软件包。完成此命令后,将当前主目录替换为您之前备份的主目录。

希望这可以帮助


nic*_*kii 10

我回答“如何定制实时 Ubuntu CD?” 使用一种从当前安装创建 Live CD 的方法。这意味着您无需再次下载所有软件包。本指南可能看起来又长又难,但主要是“跟随”和“复制和粘贴”。这是,复制出来并编辑了一下:

从现有/新安装创建 Live CD

一个好方法是从当前安装制作 Live CD。这可以使用虚拟机来完成(只是不要在来宾操作系统中安装任何 VM 工具)

所以,首先我们需要一个全新的安装(如果你不能真正安装它,尝试使用虚拟机)只有你需要的东西(在你的情况下是 Thunderbird、samba 和 ssh)。然后我们调整系统并记录调整的位置(例如,您更改桌面背景,设置在 ~/.gconf 中或添加 firefox 快捷方式,它们位于 ~/Desktop 中)。这是步骤 4 所必需的。

  1. 设置一些变量:

    export WORK=~/temp
    export CD=~/livecd
    export FORMAT=squashfs
    export FS_DIR=casper
    
    Run Code Online (Sandbox Code Playgroud)

    将 ~/temp 替换为我们将在其中工作的临时目录的路径。将 ~/livecd 替换为 CD 树的路径。

  2. 制作文件夹结构。 sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs

  3. 现在我们需要安装一些软件包:

    sudo apt-get install grub2 xorriso squashfs-tools
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在我们将复制当前安装,修改排除标志以满足您的需要:

    sudo rsync -av --one-file-system --exclude=/proc/* --exclude=/dev/* \
    --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* --exclude=/lost+found \
    --exclude=/var/tmp/* --exclude=/boot/grub/* --exclude=/root/* \
    --exclude=/var/mail/* --exclude=/var/spool/* --exclude=${WORK}/rootfs \
    --exclude=/etc/fstab --exclude=/etc/mtab --exclude=/etc/hosts \
    --exclude=/etc/timezone --exclude=/etc/shadow* --exclude=/etc/gshadow* \
    --exclude=/etc/X11/xorg.conf* --exclude=/etc/gdm/custom.conf \
    / ${WORK}/rootfs
    
    Run Code Online (Sandbox Code Playgroud)

    如果您有单独的引导分区,请执行以下操作:sudo cp -av /boot/* ${WORK}/rootfs/boot
    如果您想复制您的用户配置和文件,请根据需要修改此列表: CONFIG='.config .gconf Desktop someotherfolder andanotherfolder' 现在我们复制您的配置和文件:

    cd ~ && for i in $CONFIG
    do
    sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
    done        
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在我们 chroot 进入新系统并修改它。

    sudo mount  --bind /dev/ ${WORK}/rootfs/dev
    sudo mount -t proc proc ${WORK}/rootfs/proc
    sudo mount -t sysfs sysfs ${WORK}/rootfs/sys
    sudo mount -t devpts devpts ${WORK}/rootfs/dev/pts
    sudo chroot ${WORK}/rootfs /bin/bash
    
    Run Code Online (Sandbox Code Playgroud)

    接下来的命令在 chroot 中完成:

    LANG=
    apt-get update
    apt-get install casper
    
    Run Code Online (Sandbox Code Playgroud)

    Casper 包含实时脚本。现在安装程序(gnome 版本) apt-get install ubiquity ubiquity-frontend-gtk 或者如果你想要 KDE:

    apt-get install ubiquity ubiquity-frontend-kde
    
    Run Code Online (Sandbox Code Playgroud)
  6. 更新 modules.dep 和 initramfs:

    depmod -a $(uname -r)
    update-initramfs -u -k $(uname -r)
    
    Run Code Online (Sandbox Code Playgroud)
  7. 删除非系统用户 - 别担心,我们已经将设置和数据复制到用户的“骨架”中。这意味着所有新用户都将拥有它们。

    for i in `cat /etc/passwd | awk -F":" '{print $1}'`
    do
        uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'`
        [ "$uid" -gt "999" -a  "$uid" -ne "65534"  ] && userdel --force ${i} 2>/dev/null
    done
    
    Run Code Online (Sandbox Code Playgroud)
  8. 清理:

    apt-get clean
    find /var/log -regex '.*?[0-9].*?' -exec rm -v {} \;
    find /var/log -type f | while read file
    do
        cat /dev/null | tee $file
    done
    rm /etc/resolv.conf /etc/hostname
    
    Run Code Online (Sandbox Code Playgroud)
  9. 退出 chroot。 exit

  10. 现在,我们复制内核:

    export kversion=`cd ${WORK}/rootfs/boot && ls -1 vmlinuz-* | tail -1 | sed 's@vmlinuz-@@'`
    sudo cp -vp ${WORK}/rootfs/boot/vmlinuz-${kversion} ${CD}/boot/vmlinuz
    sudo cp -vp ${WORK}/rootfs/boot/initrd.img-${kversion} ${CD}/boot/initrd.img
    sudo cp -vp ${WORK}/rootfs/boot/memtest86+.bin ${CD}/boot
    
    Run Code Online (Sandbox Code Playgroud)
  11. 这样安装程序就不会安装 casper 之类的东西:

    sudo chroot ${WORK}/rootfs dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ${CD}/${FS_DIR}/filesystem.manifest
    sudo cp -v ${CD}/${FS_DIR}/filesystem.manifest{,-desktop}
    REMOVE='ubiquity casper user-setup os-prober libdebian-installer4'
    for i in $REMOVE 
    do
        sudo sed -i "/${i}/d" ${CD}/${FS_DIR}/filesystem.manifest-desktop
    done        
    
    Run Code Online (Sandbox Code Playgroud)
  12. 卸载我们已经安装的:

    sudo umount ${WORK}/rootfs/proc
    sudo umount ${WORK}/rootfs/sys
    sudo umount ${WORK}/rootfs/dev/pts
    sudo umount ${WORK}/rootfs/dev
    
    Run Code Online (Sandbox Code Playgroud)
  13. 转换为壁球:

    sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
    
    Run Code Online (Sandbox Code Playgroud)
  14. 制作文件系统大小: echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size

  15. 和 md5: find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt

  16. 现在 grub.cfg:

    sudo nano ${CD}/boot/grub/grub.cfg
    
    Run Code Online (Sandbox Code Playgroud)

    (用你最喜欢的文本编辑器替换 nano,没关系)粘贴并保存:

    set default="0"
    set timeout=10
    
    menuentry "Ubuntu GUI" {
    linux /boot/vmlinuz boot=casper quiet splash
    initrd /boot/initrd.img
    }
    
    
    menuentry "Ubuntu in safe mode" {
    linux /boot/vmlinuz boot=casper xforcevesa quiet splash
    initrd /boot/initrd.img
    }
    
    
    menuentry "Ubuntu CLI" {
    linux /boot/vmlinuz boot=casper textonly quiet splash
    initrd /boot/initrd.img
    }
    
    
    menuentry "Ubuntu GUI persistent mode" {
    linux /boot/vmlinuz boot=casper boot=casper persistent quiet splash
    initrd /boot/initrd.img
    }
    
    
    menuentry "Ubuntu GUI from RAM" {
    linux /boot/vmlinuz boot=casper nopersistent toram quiet splash
    initrd /boot/initrd.img
    }
    
    menuentry "Check Disk for Defects" {
    linux /boot/vmlinuz boot=casper integrity-check quiet splash
    initrd /boot/initrd.img
    }
    
    
    menuentry "Memory Test" {
    linux16 /boot/memtest86+.bin
    }
    
    
    menuentry "Boot from the first hard disk" {
    set root=(hd0)
    chainloader +1
    }
    
    Run Code Online (Sandbox Code Playgroud)
  17. 制作 CD/DVD! sudo grub-mkrescue -o ~/live-cd.iso ${CD}

  18. 用虚拟机测试一下!

所有功劳都归功于 capink,因为指南来自这里


jah*_*d65 5

有多种方法可以做到这一点。最简单的一种是使用 remastersys

sudo remastersys dist 
Run Code Online (Sandbox Code Playgroud)

在使用 remastersys 之前,您应该安装 ubiquity 包

或者你可以使用fsarchiver , redo-backup (A live cd)

如何备份您的操作系统


Met*_*eor 5

在国内,有朋友在Ubuntu中使用ucloner来备份操作系统。

https://code.google.com/p/ucloner/

UCloner 是一款专为 Ubuntu Linux 设计的备份/恢复/克隆工具。在某种程度上,它就像适用于 Windows 的 Norton Ghost。

使用 UCloner,您可以将您的 Ubuntu 系统备份到一个 squashfs 映像文件。直接从这个映像文件你可以将 PC 启动到所谓的“Live Ubuntu”环境(需要“casper”包)。

一个活跃的 ubuntu 系统可以在 UCloner 的帮助下将自己克隆到一个/一些目标分区。还记得《黑客帝国》中的特工史密斯吗?是的,就是这样。

它具有命令行和图形界面。在命令行界面中运行时更灵活。

UCloner 是免费软件,在 GPL v2 下分发。

在此处输入图片说明