foreach $p (@parts) {
$usedpri++ if ($p->{'number'} <= 4);
$extended++ if ($p->{'extended'});
- if ($p->{'end'} > $d->{'cylinders'}-1) {
- $d->{'cylinders'} = $p->{'end'}+1;
+ if ($p->{'end'} > $d->{'cylinders'}) {
+ $d->{'cylinders'} = $p->{'end'};
}
if (!$p->{'extended'} && $stat[2] &&
&indexof($p->{'type'}, @space_type) >= 0 &&
}
else {
print &ui_table_row($text{'edit_type'},
- &ui_select("type", $in{'new'} ? 83 : $pinfo->{'type'},
+ &ui_select("type",
+ $in{'new'} ? &default_tag() : $pinfo->{'type'},
[ map { [ $_, &tag_name($_) ] }
(sort { &tag_name($a) cmp &tag_name($b) }
&list_tags()) ]));
$part->{'desc'} = &partition_description($part->{'device'});
push(@{$disk->{'parts'}}, $part);
}
- elsif (/^\s*(\d+)\s+(\d+)cyl\s+(\d+)cyl\s+(\d+)cyl\s+(primary|logical|extended)/) {
+ elsif (/^\s*(\d+)\s+(\d+)cyl\s+(\d+)cyl\s+(\d+)cyl\s+(primary|logical|extended)\s*(\S*)/) {
# Partition within the current disk from parted
local $part = { 'number' => $1,
'device' => $disk->{'device'}.$1,
- 'type' => "XXX",
+ 'type' => $6,
'start' => $2+1,
'end' => $3+1,
'blocks' => $4 * $disk->{'cylsize'},
my ($disk, $part, $start, $end, $type) = @_;
if ($has_parted) {
# Using parted
- # XXX partition type
my $pe = $part > 4 ? "logical" : "primary";
- my $cmd = "parted ".$disk." unit cyl mkpart ".$pe." ".$start." ".$end;
+ my $cmd = "parted ".$disk." unit cyl mkpartfs ".$pe." ".$type." ".($start-1)." ".$end;
my $out = &backquote_logged("$cmd </dev/null 2>&1");
if ($?) {
&error("$cmd failed : $out");
# Returns a list of known partition tag numbers
sub list_tags
{
-return sort { hex($a) <=> hex($b) } (keys %tags);
+if ($has_parted) {
+ # Parted types
+ return sort { $a cmp $b } (keys %parted_tags);
+ }
+else {
+ # Classic fdisk types
+ return sort { hex($a) <=> hex($b) } (keys %tags);
+ }
}
# tag_name(tag)
# Returns a human-readable version of a tag
sub tag_name
{
-return $tags{$_[0]} ? $tags{$_[0]}
- : $hidden_tags{$_[0]};
+return $tags{$_[0]} || $parted_tags{$_[0]} || $hidden_tags{$_[0]};
+}
+
+sub default_tag
+{
+return $has_parted ? 'ext2' : '83';
}
# conv_type(tag)
'5', 'Extended',
'f', 'Windows extended LBA',
);
+
+%parted_tags = (
+ '', 'None',
+ 'fat16', 'Windows FAT16',
+ 'fat32', 'Windows FAT32',
+ 'ext2', 'Linux',
+ 'HFS', 'MacOS HFS',
+ 'linux-swap', 'Linx Swap',
+ 'NTFS', 'Windows NTFS',
+ 'reiserfs', 'ReiserFS',
+ 'ufs', 'FreeBSD UFS',
+ );
@space_type = ( '1', '4', '5', '6', 'b', 'c', 'e', '83' );
--- /dev/null
+<header>Óïðåæäàþùåå ÷òåíèå (Read-lookahead)</header>\r
+Âêëþ÷åíèå/âûêëþ÷åíèå ôóíêöèè óïðåæäàþùåãî ÷òåíèÿ äëÿ IDE äèñêîâ (ïî óìîë÷àíèþ îáû÷íî ÂÊËÞ×ÅÍÎ). <p>\r
+\r
+Óïðåæäàþùåå ÷òåíèå óëó÷øàåò ïðîèçâîäèòåëüíîñòü ïðè ïîñëåäîâàòåëüíîì ÷òåíèè áîëüøèõ ôàéëîâ, çàðàíåå ñ÷èòûâàÿ áëîêè, êîòîðûå ìîãóò ïîòðåáîâàòüñÿ ïðè ïîñëåäóþùèõ çàïðîñàõ, è ïîìåùàÿ èõ â êýø-ïàìÿòü.\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header> Ñîõðàíÿòü âîçìîæíîñòè ïîñëå ñáðîñà</header>\r
+Çàäàåò äèñêó ôëàã <i>keep_features_over_reset</i>.<p>\r
+\r
+Óñòàíîâêà ýòîãî ïàðàìåòðà, ïîçâîëÿåò äèñêó ñîõðàíÿòü ïàðàìåòðû íàñòðîéêè äëÿ <b>Óïðåæäàþùåãî ÷òåíèÿ</b>, <b>Óñòàíîâèòü ðåæèì PIO</b>, <b>Âðåìÿ äëÿ ïåðåõîäà â ðåæèì îæèäàíèÿ</b>, <b>Êåøèðîâàíèå çàïèñè</b> è <b>Ðåæèì ïåðåäà÷è</b> ïîñëå ñáðîñà (êàê ýòî äåëàåòñÿ âî âðåìÿ âîññòàíîâëåíèÿ ïðè îøèáêàõ).<p>\r
+Íå âñå äèñêè ïîääåðæèâàþò ýòó ôóíêöèþ.\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header>Âðåìÿ äî ïåðåõîäà â ðåæèì îæèäàíèÿ (Standby timeout)</header>\r
+Çàäàåò ïðîìåæóòîê âðåìåíè, ïî èñòå÷åíèè êîòîðîãî äèñê ïåðåéäåò â ðåæèì îæèäàíèÿ (standby).<p>\r
+\r
+Ïðè îòñóòñòâèè îáðàùåíèé ê äèñêó, îí ìîæåò ïåðåéòè â ðåæèì îæèäàíèÿ, îòêëþ÷èâ øïèíäåëüíûé äâèãàòåëü äëÿ ýêîíîìèè ýíåðãèè. <br>\r
+Íà ïðîáóæäåíèå äèñêà èç ðåæèìà îæèäàíèÿ (ïðè ïîïûòêå äîñòóïà ê íåìó), ìîæåò ïîòðåáîâàòüñÿ äî 30 ñåêóíä, õîòÿ êîíå÷íî æå, áîëüøèíñòâó äèñêîâ ïîòðåáóåòñÿ íàìíîãî ìåíüøå âðåìåíè.<p>\r
+\r
+Ïåðåñ÷åò çíà÷åíèé ýòîãî ïàðàìåòðà â ðåàëüíîå âðåìÿ íåñêîëüêî ñïåöèôè÷åñêèé. <br>\r
+Çíà÷åíèå íîëü îçíà÷àåò "îòêëþ÷åíî". <br>\r
+Çíà÷åíèÿ îò 1 äî 240 çàäàåò âðåìÿ ñ øàãîì â 5 ñåêóíä, â èíòåðâàëå îò 5 ñåêóíä äî 20 ìèíóò. <br>\r
+Çíà÷åíèÿ îò 241 äî 251 îáðàçóþò îò 1 äî 11 øàãîâ ïî 30 ìèíóò, òî åñòü, çàäàþò îò 30 ìèíóò äî 5.5 ÷àñîâ. <br> Çíà÷åíèå 252 çàäàåò âðåìÿ îæèäàíèÿ â 21 ìèíóòó, 253 - âðåìÿ çàäàííîå ïðîèçâîäèòåëåì äèñêà, à 255 ýòî 21 ìèíóòà ïëþñ 15 ñåêóíä.\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header>Êåøèðîâàíèå çàïèñè (Write caching)</header>\r
+Âêëþ÷àåò/âûêëþ÷àåò ôóíêöèþ êåøèðîâàíèÿ çàïèñè íà IDE äèñêå (ïî-óìîë÷àíèþ îáû÷íî ÂÛÊËÞ×ÅÍÎ).<p>\r
+\r
+Êîãäà êýøèðîâàíèå çàïèñè âêëþ÷åíî, äàííûå íå çàïèñûâàþòñÿ ñðàçó íà äèñê, à ïîïàäàþò â êýø. Íåïîñðåäñòâåííàÿ çàïèñü ïðîèñõîäèò ÷åðåç íåêîòîðîå âðåìÿ (îòëîæåííàÿ çàïèñü). Ýòèì äîñòèãàåòñÿ ïîâûøåíèå ïðîèçâîäèòåëüíîñòè.<br>\r
+ íåêîòîðûõ ñëó÷àÿõ âàæíî ïðîèçâåñòè çàïèñü íåìåäëåííî, ìèíóÿ êýø. Ýòî ïðåäîòâðàùàåò ïîòåðþ èëè ïîâðåæäåíèå äàííûõ â ñëó÷àå ñáîåâ.\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header>Ðåæèì ïåðåäà÷è (Transfer mode)</header>\r
+Çàäàåò ðåæèì IDE ïåðåäà÷è äëÿ íîâûõ IDE/ATA2 äèñêîâ.<p>\r
+\r
+Îáû÷íî ýòî èñïîëüçóåòñÿ â êîìáèíàöèè ñ ïàðàìåòðîì <b> Èñïîëüçîâàòü DMA </b>, êîãäà ðåæèì DMA ïîääåðæèâàåòñÿ. <p>\r
+\r
+Èçìåíåíèå ýòîãî ïàðàìåòðà ðåäêî íåîáõîäèìî, òàê êàê ñîâðåìåííûå IDE äèñêè ïî óìîë÷àíèþ ñàìè íàñòðàèâàþòñÿ íà ñàìûé áûñòðûé ðåæèì PIO ñðàçó ïîñëå âêëþ÷åíèÿ. Ýêñïåðèìåíòû ñ ýòèì ïàðàìåòðîì ìîãóò áûòü è áåñïîëåçíû, è îïàñíû.<p>\r
+<i>Èñïîëüçóéòå åãî ñ îñîáîé îñòîðîæíîñòüþ!</i>\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header>Êîëè÷åñòâî ñåêòîðîâ (Sector Count)</header>\r
+Çàäàåò êîëè÷åñòâî ñåêòîðîâ äëÿ óïðåæäàþùåãî ÷òåíèÿ.<p>\r
+\r
+ òåêóùåé âåðñèè ÿäðà (2.0.10), ýòîò ïàðàìåòð, ïî-óìîë÷àíèþ èìååò çíà÷åíèå ðàâíîå 8 ñåêòîðàì (4 ÊÁ). Ýòîãî îáû÷íî äîñòàòî÷íî äëÿ áîëüøèíñòâà çàäà÷, íî â ñèñòåìå, ãäå ïðåîáëàäàþò ñëó÷àéíûå îáðàùåíèÿ ê ôàéëàì - óñòàíîâêà ìåíüøåãî çíà÷åíèÿ ìîæåò óëó÷øèòü ïðîèçâîäèòåëüíîñòü. Êðîìå òîãî, ìíîãèå IDE äèñêè èìåþò îòäåëüíóþ âñòðîåííóþ ôóíêöèþ óïðåæäàþùåãî ÷òåíèÿ, êîòîðàÿ òàê æå âî ìíîãèõ ñèòóàöèÿõ óëó÷øàåò ïðîèçâîäèòåëüíîñòü ïðè îïåðàöèÿõ ÷òåíèÿ.\r
+<hr>
\ No newline at end of file
--- /dev/null
+<header>Òîëüêî ÷òåíèå</header>\r
+Óñòàíàâëèâàåò ïàðàìåòð "Òîëüêî ÷òåíèå" äëÿ óñòðîéñòâà. Êîãäà îí óñòàíîâëåí, íà óñòðîéñòâå íå ðàçðåøåíû îïåðàöèè çàïèñè.\r
+<hr>
\ No newline at end of file
index_title=Partition Manager
+index_parted=Using <tt>parted</tt>
+index_fdisk=Using <tt>fdisk</tt>
index_err=Failed to list disks
index_disk=Disk
index_parts=Partitions