|
|
|
@ -616,33 +616,37 @@ sub checkerrors{
|
|
|
|
|
beep(); return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#проверим размер диска
|
|
|
|
|
my $disk = $data{arg}{'disk'};
|
|
|
|
|
$disk =~m/\/([^\/]+)$/;
|
|
|
|
|
$disk = "/sys/block/$1/size";
|
|
|
|
|
if(!-e $disk){
|
|
|
|
|
printmes(gettext('The size of the disk is not defined')."!\n");
|
|
|
|
|
beep(); return "";
|
|
|
|
|
}else{
|
|
|
|
|
open(F, $disk);
|
|
|
|
|
my $size = <F>;
|
|
|
|
|
close(F);
|
|
|
|
|
chomp $size;
|
|
|
|
|
|
|
|
|
|
$size*=512/1024/1024/1024; #переведем в гигабайты
|
|
|
|
|
if($size < 45){
|
|
|
|
|
printmes(gettext('The size of the disk is not sufficient to perform automatic partitioning')."!\n");
|
|
|
|
|
if(check_removable($data{arg}{'disk'}) ne "flash"){
|
|
|
|
|
#проверим размер диска
|
|
|
|
|
my $disk = $data{arg}{'disk'};
|
|
|
|
|
$disk =~m/\/([^\/]+)$/;
|
|
|
|
|
$disk = "/sys/block/$1/size";
|
|
|
|
|
if(!-e $disk){
|
|
|
|
|
printmes(gettext('The size of the disk is not defined')."!\n");
|
|
|
|
|
beep(); return "";
|
|
|
|
|
} }
|
|
|
|
|
}else{
|
|
|
|
|
open(F, $disk);
|
|
|
|
|
my $size = <F>;
|
|
|
|
|
close(F);
|
|
|
|
|
chomp $size;
|
|
|
|
|
|
|
|
|
|
$size*=512/1024/1024/1024; #переведем в гигабайты
|
|
|
|
|
if($size < 45 && !defined $data{arg}{'vars'}){
|
|
|
|
|
printmes(gettext('The size of the disk is not sufficient to perform automatic partitioning')."!\n");
|
|
|
|
|
beep(); return "";
|
|
|
|
|
} }
|
|
|
|
|
|
|
|
|
|
$data{rootinstall} = $data{arg}{'disk'}."2"; #устанавливаем во второй раздел диска
|
|
|
|
|
$data{data_install_set} = $data{arg}{'disk'}."5"; #раздел данных пятый
|
|
|
|
|
$data{partitions_dev} = $data{arg}{'disk'};
|
|
|
|
|
$data{partitions_fdisk} =
|
|
|
|
|
" /var/calculate auto noatime 0 0\n".
|
|
|
|
|
"/var/calculate/home /home auto bind 0 0\n".
|
|
|
|
|
"/var/calculate/share /usr/calculate/share auto bind 0 0\n\n";
|
|
|
|
|
} }
|
|
|
|
|
$data{rootinstall} = $data{arg}{'disk'}."2"; #устанавливаем во второй раздел диска
|
|
|
|
|
$data{data_install_set} = $data{arg}{'disk'}."5"; #раздел данных пятый
|
|
|
|
|
$data{partitions_dev} = $data{arg}{'disk'};
|
|
|
|
|
$data{partitions_fdisk} =
|
|
|
|
|
" /var/calculate auto noatime 0 0\n".
|
|
|
|
|
"/var/calculate/home /home auto bind 0 0\n".
|
|
|
|
|
"/var/calculate/share /usr/calculate/share auto bind 0 0\n\n";
|
|
|
|
|
}else{
|
|
|
|
|
$data{rootinstall} = $data{arg}{'disk'}."1"; #устанавливаем в первый и единственный раздел
|
|
|
|
|
$data{partitions_dev} = $data{arg}{'disk'};
|
|
|
|
|
} } }
|
|
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
|
# Проверим id пользователя, запустившего скрипт
|
|
|
|
@ -1886,20 +1890,20 @@ sub checksystem{
|
|
|
|
|
# USB устройства
|
|
|
|
|
# $data{'removableinstall'}, $data{grub_delay}
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
|
if($data{rootinstall}){
|
|
|
|
|
$data{rootinstall} =~m#/dev/(.+)#;
|
|
|
|
|
my $disk = $1;
|
|
|
|
|
if(-e "/dev/disk/by-id" && `LANG=C ls -la /dev/disk/by-id/ | grep $disk | grep ' usb-'`){
|
|
|
|
|
$data{'removableinstall'} = 'on';
|
|
|
|
|
printmes(" (USB-HDD)");
|
|
|
|
|
if(!$data{grub_delay}){
|
|
|
|
|
$data{grub_delay} = " scandelay=5";
|
|
|
|
|
}
|
|
|
|
|
if(check_removable($data{rootinstall})){
|
|
|
|
|
$data{'removableinstall'} = 'on';
|
|
|
|
|
if(check_removable($data{rootinstall}) eq 'flash'){
|
|
|
|
|
printmes(" (USB-Flash)");
|
|
|
|
|
}else{
|
|
|
|
|
$data{'removableinstall'} = 'off';
|
|
|
|
|
if(!$data{grub_delay}){
|
|
|
|
|
$data{grub_delay} = "";
|
|
|
|
|
}
|
|
|
|
|
printmes(" (USB-HDD)");
|
|
|
|
|
}
|
|
|
|
|
if(!$data{grub_delay}){
|
|
|
|
|
$data{grub_delay} = " scandelay=5";
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
$data{'removableinstall'} = 'off';
|
|
|
|
|
if(!$data{grub_delay}){
|
|
|
|
|
$data{grub_delay} = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
printmes("\n");
|
|
|
|
@ -2890,7 +2894,7 @@ sub extract{
|
|
|
|
|
printmes(gettext('Prepare installation volume')); printmes("\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($data{partitions_dev}){
|
|
|
|
|
if($data{partitions_dev} && check_removable($data{arg}{'disk'}) ne "flash"){
|
|
|
|
|
printmes(" ".gettext('Perform hard disk partition')); printmes("... ");
|
|
|
|
|
#выполним разбиение диска
|
|
|
|
|
if(system("$data{path} cat /usr/calculate/install/config/fdisk.$data{calculate} | fdisk $data{partitions_dev} &>/dev/null")){
|
|
|
|
@ -2930,6 +2934,14 @@ sub extract{
|
|
|
|
|
}else{
|
|
|
|
|
$data{data_install_set} = "$data{partitions_dev}5";
|
|
|
|
|
}
|
|
|
|
|
}elsif($data{partitions_dev} && check_removable($data{arg}{'disk'}) eq "flash"){
|
|
|
|
|
printmes(" ".gettext('Perform hard disk partition')); printmes("... ");
|
|
|
|
|
#выполним разбиение диска
|
|
|
|
|
if(system("$data{path} cat /usr/calculate/install/config/fdisk.flash | fdisk $data{partitions_dev} &>/dev/null")){
|
|
|
|
|
printmes(gettext('Error')); printmes("! ");
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
printmes(gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Formatting new volume')); printmes("... ");
|
|
|
|
@ -6496,3 +6508,19 @@ sub swapon{
|
|
|
|
|
} }
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
# Определим USB устройства Flash и USB-HDD
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
sub check_removable{
|
|
|
|
|
my $dev = $_[0];
|
|
|
|
|
$dev =~m#^/dev/([^\/0-9]+)[0-9]?[0-9]?$#;
|
|
|
|
|
my $disk = $1;
|
|
|
|
|
if(-e "/dev/disk/by-id"){
|
|
|
|
|
my $id = `LANG=C ls -la /dev/disk/by-id/ | grep $disk | grep ' usb-'`;
|
|
|
|
|
if($id=~m/flash/i){return "flash";}
|
|
|
|
|
else{return "usb-hdd"}
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|