From 3d24a1eb51fd57b0025d997002202cf6b3ce5678 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Fri, 24 Jun 2016 13:00:14 +0200 Subject: keep UUID when formating btrfs (mga#18673) --- perl-install/NEWS | 3 +++ perl-install/fs/format.pm | 10 +++++++++- perl-install/install/NEWS | 3 +++ perl-install/install/share/list.xml | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/perl-install/NEWS b/perl-install/NEWS index 543a97528..d36c52131 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -1,3 +1,6 @@ +- diskdrake: + o keep UUID when formating btrfs (mga#18673) + Version 17.44 - 24 June 2016 - diskdrake: diff --git a/perl-install/fs/format.pm b/perl-install/fs/format.pm index bab6ad83d..0be25e3d7 100644 --- a/perl-install/fs/format.pm +++ b/perl-install/fs/format.pm @@ -65,7 +65,6 @@ my %edit_LABEL = ( # package, command, option # Preserve UUID on fs where we couldn't enforce it while formatting my %preserve_UUID = ( # package, command - #btrfs => [ 'btrfs-progs', 'btrfstune' ], # btrfstune needs answering 'y' jfs => [ 'jfsutils', 'jfs_tune', ], xfs => [ 'xfsprogs', 'xfs_admin' ], nilfs2 => [ 'nilfs-utils', 'nilfs-tune' ], @@ -144,6 +143,13 @@ sub write_label { delete $part->{device_LABEL_changed}; } +sub write_btrfs_uuid { + my ($UUID, $dev) = @_; + $dev = devices::make($dev); + my $status = system("echo y|btrfstune -U $UUID $dev") == 0; + die "failed to set UUID to '$UUID' on $dev (status=$status)" if !$status; +} + sub part_raw { my ($part, $wait_message) = @_; @@ -197,6 +203,8 @@ sub part_raw { if (my $uuid_cmd = $preserve_UUID{$fs_type}) { (undef, $cmd) = @$uuid_cmd; run_program::raw({}, $cmd, '-U', $part->{device_UUID}, devices::make($dev)) if $cmd; + } elsif ($fs_type eq 'btrfs' && $part->{device_UUID}) { + write_btrfs_uuid($part->{device_UUID}, $dev); } if (member($fs_type, qw(ext3 ext4))) { diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index d0a96d668..aaf8ffa90 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,3 +1,6 @@ +- partionning: + o keep UUID when formating btrfs (mga#18673) + Version 17.44 - 24 June 2016 - bootloader configuration: diff --git a/perl-install/install/share/list.xml b/perl-install/install/share/list.xml index b169bd9bb..d5dc11de6 100644 --- a/perl-install/install/share/list.xml +++ b/perl-install/install/share/list.xml @@ -23,7 +23,7 @@ xfs_freeze xfs_io xfs_db - mkfs.btrfs btrfs btrfsck fsck.btrfs + mkfs.btrfs btrfs btrfsck fsck.btrfs btrfstune mkfs.nilfs2 nilfs-tune tty stty -- cgit v1.2.1