diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2016-06-24 13:00:14 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2016-06-24 13:25:36 +0200 |
commit | 3d24a1eb51fd57b0025d997002202cf6b3ce5678 (patch) | |
tree | 5d8fd96f5be27ca34850b7b9179b5297f0a83ad6 | |
parent | 484587813638808c1dace9483a22fc242e0d8625 (diff) | |
download | drakx-3d24a1eb51fd57b0025d997002202cf6b3ce5678.tar drakx-3d24a1eb51fd57b0025d997002202cf6b3ce5678.tar.gz drakx-3d24a1eb51fd57b0025d997002202cf6b3ce5678.tar.bz2 drakx-3d24a1eb51fd57b0025d997002202cf6b3ce5678.tar.xz drakx-3d24a1eb51fd57b0025d997002202cf6b3ce5678.zip |
keep UUID when formating btrfs (mga#18673)
-rw-r--r-- | perl-install/NEWS | 3 | ||||
-rw-r--r-- | perl-install/fs/format.pm | 10 | ||||
-rw-r--r-- | perl-install/install/NEWS | 3 | ||||
-rw-r--r-- | 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 <!-- needed for setup grub on XFS formated / --> xfs_db <!-- needed by xfs_admin for setting UUID --> - mkfs.btrfs btrfs btrfsck fsck.btrfs + mkfs.btrfs btrfs btrfsck fsck.btrfs btrfstune mkfs.nilfs2 nilfs-tune tty stty <!-- needed for text mode installer (through unicode_start) --> |