Fix install to USB-HDD. Add parameter --set-uuid=on|off for use UUID label devices.

master
Трацевский Александр 14 years ago
parent bdc7a40c13
commit 931494f513

@ -4,6 +4,8 @@ CHANGE LOG
* Add license Broadcom and dlj-1.1 in /etc/make.conf.
* Added setting mirrors Yandex.
* Change creating iso-image for install it to flash by using Universal Netboot Installer.
* Fix install to USB-HDD.
* Add parameter --set-uuid=on|off for use UUID label devices.
1.3.4
* Add tracking of changes kernel in cl-builder.

@ -337,6 +337,7 @@ sub getarg{
"user_groups",
"useradd",
"userdel",
"uuid",
"mail",
"video_drv",
"video_resolution",
@ -2079,11 +2080,7 @@ sub checksystem{
my $disk = $1;
if(-e "/dev/disk/by-id" && `LANG=C ls -la /dev/disk/by-id/ | grep $disk | grep ' usb-'`){
$data{'removableload'} = 'on';
}
# else{
# $data{'removableload'} = 'off';
# }
}
} }
#----------------------------------------------------------------------
# Укажем доступные варианты дисков для установки
@ -2112,15 +2109,26 @@ sub checksystem{
$data{move_fstab} = "off";
}
#----------------------------------------------------------------------
# Флаг установки с использованием UUID
#----------------------------------------------------------------------
if($data{uuid}=~m/^yes$/i || $data{uuid}=~m/^on$/i ||
(!$data{uuid} && $data{'removableload'} eq 'on')
){
$data{uuid} = "on";
}else{
$data{uuid} = "off";
}
#----------------------------------------------------------------------
# Считаем uuid загрузочного диска, определим его метку
# $data{uuid_load}, $data{root_load_set}
#----------------------------------------------------------------------
$data{uuid_load} = "";
$data{root_load_set} = "";
if($data{'removableload'} eq 'on' && $data{rootload}){
$data{uuid_load} = `$data{path} vol_id --uuid $data{rootload} 2>/dev/null`;
chomp $data{uuid_load};
if($data{'uuid'} eq 'on' && $data{rootload}){
$data{uuid_load} = uuid($data{rootload}, UUID);
$data{root_load_set} = "UUID=$data{uuid_load}";
}else{
$data{root_load_set} = $data{rootload};
@ -2135,9 +2143,8 @@ sub checksystem{
$data{uuid_install} = "";
$data{root_install_set} = "";
if($data{rootinstall}){
$data{uuid_install} = `$data{path} vol_id --uuid $data{rootinstall} 2>/dev/null`;
chomp $data{uuid_install};
if($data{'removableinstall'} eq 'on'){
$data{uuid_install} = uuid($data{rootinstall}, UUID);
if($data{'uuid'} eq 'on'){
$data{root_install_set} = "UUID=$data{uuid_install}";
}else{
$data{root_install_set} = $data{rootinstall};
@ -2182,7 +2189,7 @@ sub checksystem{
if(!$data{'format'} && !defined $data{arg}{'list'} && !defined $data{addition}){
my $format;
if($data{rootinstall}){
$format = `$data{path} vol_id --type $data{rootinstall} 2>/dev/null`;
$format = uuid($data{rootinstall}, TYPE);
}
if($format =~m/ext2/){$data{'format'} = 'ext2';}
elsif($format =~m/ext3/){$data{'format'} = 'ext3';}
@ -2351,11 +2358,12 @@ sub checksystem{
m/^(\/dev\/[^\s]+)([0-9])/;
my $swap = $1.$2;
if($data{rootinstall}=~/^$1/){
my $uuid_swap = `$data{path} vol_id --uuid $swap 2>/dev/null`;
my $uuid_swap = uuid($swap, UUID);
if($uuid_swap eq '' && !`cat /proc/swaps | grep "^$swap"`){
`$data{path} mkswap $swap > /dev/null`;
$uuid_swap = `$data{path} vol_id --uuid $swap 2>/dev/null`;
$uuid_swap = uuid($swap, UUID);
}
print "''";
$data{swap} = $swap;
$data{uuid_swap} = $uuid_swap;
chomp $data{uuid_swap};
@ -3068,7 +3076,7 @@ sub extract{
printmes(gettext('done').".\n");
# После форматирования считаем uuid диска свопа, переопределим его метку
my $uuid_swap = `$data{path} vol_id --uuid $data{partitions_dev}1 2>/dev/null`;
my $uuid_swap = uuid("$data{partitions_dev}1", UUID);
$data{swap} = "$data{partitions_dev}1";
$data{uuid_swap} = $uuid_swap;
chomp $data{uuid_swap};
@ -3091,9 +3099,9 @@ sub extract{
# После форматирования считаем uuid диска с данными, определим его метку
# $data{uuid_data}, $data{data_install_set}
$data{uuid_data} = `$data{path} vol_id --uuid $data{partitions_dev}5 2>/dev/null`;
$data{uuid_data} = uuid("$data{partitions_dev}5", UUID);
chomp $data{uuid_data};
if($data{'removableinstall'} eq 'on'){
if($data{'uuid'} eq 'on'){
$data{data_install_set} = "UUID=$data{uuid_data}";
}else{
$data{data_install_set} = "$data{partitions_dev}5";
@ -3124,9 +3132,9 @@ sub extract{
# После форматирования считаем uuid установочного диска, определим его метку
# $data{uuid_install}, $data{root_install_set}
$data{uuid_install} = `$data{path} vol_id --uuid $data{rootinstall} 2>/dev/null`;
$data{uuid_install} = uuid($data{rootinstall}, UUID);
chomp $data{uuid_install};
if($data{'removableinstall'} eq 'on'){
if($data{'uuid'} eq 'on'){
$data{root_install_set} = "UUID=$data{uuid_install}";
}else{
$data{root_install_set} = $data{rootinstall};
@ -5267,13 +5275,6 @@ sub createiso{
$copyflash = "&& cp -r $target/* /mnt/flash/";
$isolinux = "syslinux";
}
else {
$copyflash = qq| && cp -a $target/isolinux/memtest $target/syslinux/ &&
cp -a $target/isolinux/isolinux.bin $target/syslinux/ &&
cp -a $target/isolinux/calcmenu.c32 $target/syslinux/ &&
cp $target/isolinux/boot.jpg $target/syslinux/
|;
}
#перенесем ядро и меню на флешку
if(system(qq|
@ -6880,7 +6881,7 @@ sub check_removable{
sub swapset{
if($data{swap}){
printmes(" ".gettext('Swap disk')); printmes(": $data{swap}\n");
if($data{'removableinstall'} eq 'on'){
if($data{'uuid'} eq 'on'){
$data{swapset} = qq|UUID=$data{uuid_swap}\tnone\t\tswap\tsw\t\t\t0 0|;
}else{
$data{swapset} = qq|$data{swap}\tnone\t\tswap\tsw\t\t\t0 0|;
@ -6956,3 +6957,19 @@ sub opengl_set{
system "$data{run_opengl}";
}
}
#------------------------------------------------------------------------------
# Извлечем информацию о разделе
# параметры - раздел, тип информации
#------------------------------------------------------------------------------
sub uuid{
my $info = `$data{path} blkid $_[0] 2>/dev/null`;
if($_[1] eq 'UUID'){
$info =~s/.*UUID="([^"]+)".*/$1/;
}elsif($_[1] eq 'TYPE'){
$info =~s/.*TYPE="([^"]+)".*/$1/;
}
chomp $info;
return $info;
}

Loading…
Cancel
Save