Preseed 删除了分区上的数据,我该如何阻止这种情况?

Preseed 删除了分区上的数据,我该如何阻止这种情况?

这是我的主要预置文件:

# Partition Disks
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular

d-i partman-auto/expert_recipe string                         \
      boot-root ::                                            \
              30000 30000 30000 btrfs                         \
                      $primary{ } $bootable{ }                \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ btrfs }   \
                      mountpoint{ / }                         \
              .                                               \
              8000 8000 8000 linux-swap                       \
                      method{ swap } format{ }                \
                      use_filesystem{ } filesystem{ swap }    \
                      $primary{ }                             \
              .                                               \
              30000 30000 30000 ext4                          \
                      method{ format } format{ }              \
              use_filesystem{ } filesystem{ ext4 }    \
              mountpoint{ /data }             \
              label{ data }               \
              .                           \
              15000 15000 15000 ext4                          \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ ext4 }    \
                      mountpoint{ /work }                      \
              label{ work }               \
              .

d-i partman/confirm_write_new_label boolean true
d-i partman/confirm boolean  true
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman/confirm_nooverwrite boolean true

这是应该格式化并进行全新安装的预置,但不会触及分区或分区上的数据:

# Partition Disks  
d-i partman-auto/expert_recipe string                         \
      boot-root ::                                            \
              30000 30000 30000 btrfs                         \
                      $primary{ } $bootable{ }                \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ btrfs }   \
                      mountpoint{ / }                         \
              .                                               \
              8000 8000 8000 linux-swap                       \
                      method{ swap } format{ }                \
                      use_filesystem{ } filesystem{ swap }    \
                      $primary{ }                             \
              .                                               \
              30000 30000 30000 ext4                          \
                      method{ keep }                          \
                      label{ data }                           \
              .                                               \
              15000 15000 15000 ext4                          \
                      method{ keep }                          \
                      label{ work }                           \
              .

partman-basicfilesystems partman-basicfilesystems/no_mount_point boolean false
d-i partman/confirm_write_new_label boolean true
d-i partman/confirm boolean  true
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman/confirm_nooverwrite boolean true

使用此预置运行安装后,数据和工作内的文件将消失。

我看过 https://wikitech.wikimedia.org/wiki/PartMan并设置了保留方法但遗憾的是仍然没有运气。

分区完好且仍然保留,只是分区内的文件消失了。

我的最终目标是实现无人值守安装,格式化并重新启动 ubuntu,但仍保持分区和数据完好无损。

谢谢你!

答案1

partman 文档有一些很好的提示: https://sources.debian.org/src/debian-installer/20190410/doc/devel/partman-auto-recipe.txt/

首先,我相信您可以定义一个具有“无限”大小的分区,在计算完所有其他分区的大小后,它实际上将使用设备上剩余的空间,例如:

              30000 30000 -1 ext4       \
                  method{ format }      \
                  format{ }             \
                  use_filesystem{ }     \
                  filesystem{ ext4 }    \
                  mountpoint{ /data }   \
                  label{ data }         \

无论如何,您是否找到了将数据保存在分区中的方法?

答案2

这对我有用,只是格式化操作系统但数据保留并安装。

您所要做的就是,放入方法{ 格式 } 但删除格式{ }。

format{ } 是进行格式化的标签,如果不存在,则不会删除数据。最后……

method{ format }              \
use_filesystem{ } filesystem{ ext4 }   \
mountpoint{ /data }           \

相关内容