git-svn-id: http://svn.calculate.ru/calculate/trunk@1893 c91db197-33c1-4113-bf15-f8a5c547ca64

master
atratsevskiy 15 years ago
parent edc2dd62fc
commit f790083311

@ -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 "";
}

@ -0,0 +1,28 @@
d
9
d
8
d
7
d
6
d
5
d
4
d
3
d
2
d
1
n
p
1
t
b
a
1
w
Loading…
Cancel
Save