#!/usr/bin/perl # Show the partitions on a single disk require './fdisk-lib.pl'; &ReadParse(); &can_edit_disk($in{'device'}) || &error($text{'disk_ecannot'}); # Get the disk @disks = &list_disks_partitions(); ($d) = grep { $_->{'device'} eq $in{'device'} } @disks; $d || &error($text{'disk_egone'}); @parts = @{$d->{'parts'}}; &ui_print_header($d->{'desc'}, $text{'disk_title'}, "", undef, @disks == 1 ? 1 : 0, @disks == 1 ? 1 : 0); $caneditpart = $d->{'table'} ne 'gpt' || ($d->{'table'} eq 'gpt' && &has_command('parted') && $config{'mode'} ne 'fdisk'); # Work out links to add partitions foreach $p (@parts) { $extended++ if ($p->{'extended'}); $regular++ if (!$p->{'extended'}); if ($p->{'end'} > $d->{'cylinders'}) { $d->{'cylinders'} = $p->{'end'}; } if (!$p->{'extended'} && $stat[2] && &indexof($p->{'type'}, @space_type) >= 0 && (@space = &disk_space($p->{'device'}, $stat[0])) && $space[0]) { $p->{'free'} = sprintf "%d %%\n", 100 * $space[1] / $space[0]; $anyfree++; } } if ($caneditpart) { if ($regular < 4 || $disk->{'table'} ne 'msdos') { push(@edlinks, "<a href=\"edit_part.cgi?disk=$d->{'index'}&new=1\">". $text{'index_addpri'}."</a>"); } if ($extended) { push(@edlinks, "<a href=\"edit_part.cgi?disk=$d->{'index'}&new=2\">". $text{'index_addlog'}."</a>"); } elsif ($regular < 4 && &supports_extended()) { push(@edlinks, "<a href=\"edit_part.cgi?disk=$d->{'index'}&new=3\">". $text{'index_addext'}."</a>"); } } else { $wantsparted = 1; } if ($d->{'table'} eq 'unknown') { # Must create a partition table first @edlinks = ( $text{'disk_needtable'} ); } # Show brief disk info @info = ( ); if ($d->{'cylsize'}) { push(@info, &text('disk_dsize', &nice_size($d->{'cylinders'}*$d->{'cylsize'}))); } if ($d->{'model'}) { push(@info, &text('disk_model', $d->{'model'})); } push(@info, &text('disk_cylinders', $d->{'cylinders'})); if ($d->{'table'}) { if ($d->{'table'} eq 'unknown') { push(@info, $text{'disk_notable'}); } else { push(@info, &text('disk_table', uc($d->{'table'}))); } } print &ui_links_row(\@info),"<p>\n"; if ($wantsparted) { my $label = $config{'mode'} eq 'fdisk' ? 'edit_edisk2' : 'edit_edisk'; print "<p>$text{$label}</p>\n"; } # Show table of partitions, if any if (@parts) { print &ui_links_row(\@edlinks); @tds = ( "width=5%", "width=10%", "width=45%", "width=5%", "width=5%", "width=5%", "width=15%", "width=10%" ); @tds = map { "nowrap $_" } @tds; print &ui_columns_start([ $text{'disk_no'}, $text{'disk_type'}, $text{'disk_extent'}, $text{'disk_size'}, $text{'disk_start'}, $text{'disk_end'}, $text{'disk_use'}, $anyfree ? ( $text{'disk_free'} ) : ( ), ], 100, 0, \@tds); foreach $p (@parts) { $url = "edit_part.cgi?disk=$d->{'index'}&part=$p->{'index'}"; # Create extent images $ext = ""; $ext1 = int((($p->{'start'} - 1) / $d->{'cylinders'}) * 100) . "%"; $ext2 = int((($p->{'end'} - $p->{'start'}) / $d->{'cylinders'}) * 100) . "%"; $ext3 = int((($d->{'cylinders'} - ($p->{'end'} - 1)) / $d->{'cylinders'}) * 100) . "%"; $ext .= "<img src=images/gap.gif height=10 width='$ext1'>"; $ext .= sprintf "<img src=images/%s.gif height=10 width='$ext2'>", $p->{'extended'} ? "ext" : "use"; $ext .= "<img src=images/gap.gif height=10 width='$ext3'>"; # Work out usage @stat = &device_status($p->{'device'}); $stat = &device_status_link(@stat); print &ui_columns_row([ "<a href='$url'>$p->{'number'}</a>", "<a href='$url'>".($p->{'extended'} ? $text{'extended'} : &tag_name($p->{'type'}))."</a>", $ext, $p->{'size'} ? &nice_size($p->{'size'}) : &text('edit_blocks', $p->{'blocks'}), $p->{'start'}, $p->{'end'}, $stat, $anyfree ? ( $p->{'free'} ) : ( ), ], \@tds); } print &ui_columns_end(); } else { print "<p>$text{'disk_none'}</p>\n" if (!$wantsparted); } print &ui_links_row(\@edlinks); # Buttons for IDE params and SMART my $ui_buttons_content; if (&supports_hdparm($d)) { $ui_buttons_content = &ui_buttons_row("edit_hdparm.cgi", $text{'index_hdparm'}, $text{'index_hdparmdesc'}, &ui_hidden("disk", $d->{'index'})); } if (&supports_smart($d)) { $ui_buttons_content = &ui_buttons_row("../smart-status/index.cgi", $text{'index_smart'}, $text{'index_smartdesc'}, &ui_hidden("drive", $d->{'device'})); } if (&supports_relabel($d)) { if ($d->{'table'} eq 'unknown') { $ui_buttons_content = &ui_buttons_row( "edit_relabel.cgi", $text{'index_relabel2'}, $text{'index_relabeldesc2'}, &ui_hidden("device", $d->{'device'})); } else { $ui_buttons_content = &ui_buttons_row( "edit_relabel.cgi", $text{'index_relabel'}, $text{'index_relabeldesc'}, &ui_hidden("device", $d->{'device'})); } } if ($ui_buttons_content) { print &ui_hr(); print &ui_buttons_start(); print $ui_buttons_content; print &ui_buttons_end(); } &ui_print_footer("", $text{'index_return'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.92 KB | 0644 |
|
acl_security.pl | File | 958 B | 0755 |
|
apply_hdparm.cgi | File | 1.17 KB | 0755 |
|
blink.cgi | File | 384 B | 0755 |
|
cgi_args.pl | File | 483 B | 0755 |
|
config | File | 13 B | 0644 |
|
config.info | File | 144 B | 0644 |
|
config.info.bg | File | 235 B | 0644 |
|
config.info.ca | File | 167 B | 0644 |
|
config.info.de | File | 148 B | 0644 |
|
config.info.fr | File | 167 B | 0644 |
|
config.info.nl | File | 138 B | 0644 |
|
config.info.no | File | 151 B | 0644 |
|
defaultacl | File | 26 B | 0644 |
|
edit_disk.cgi | File | 4.91 KB | 0755 |
|
edit_hdparm.cgi | File | 4.36 KB | 0755 |
|
edit_part.cgi | File | 8.26 KB | 0755 |
|
edit_relabel.cgi | File | 1.32 KB | 0755 |
|
fdisk-lib.pl | File | 48.16 KB | 0755 |
|
feedback_files.pl | File | 115 B | 0755 |
|
fsck.cgi | File | 604 B | 0755 |
|
fsck_form.cgi | File | 700 B | 0755 |
|
index.cgi | File | 2.41 KB | 0755 |
|
log_parser.pl | File | 1.53 KB | 0755 |
|
make_tags.pl | File | 210 B | 0755 |
|
mkfs.cgi | File | 820 B | 0755 |
|
mkfs_form.cgi | File | 832 B | 0755 |
|
module.info | File | 238 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 153 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 209 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 249 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 236 B | 0644 |
|
module.info.ca | File | 119 B | 0644 |
|
module.info.ca.auto | File | 29 B | 0644 |
|
module.info.cs | File | 40 B | 0644 |
|
module.info.cs.auto | File | 130 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 149 B | 0644 |
|
module.info.de | File | 131 B | 0644 |
|
module.info.de.auto | File | 26 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 299 B | 0644 |
|
module.info.es | File | 38 B | 0644 |
|
module.info.es.auto | File | 112 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 146 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 233 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 149 B | 0644 |
|
module.info.fr | File | 35 B | 0644 |
|
module.info.fr.auto | File | 133 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 188 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 160 B | 0644 |
|
module.info.hu | File | 79 B | 0644 |
|
module.info.hu.auto | File | 26 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 152 B | 0644 |
|
module.info.ja | File | 58 B | 0644 |
|
module.info.ja.auto | File | 179 B | 0644 |
|
module.info.ko | File | 36 B | 0644 |
|
module.info.ko.auto | File | 137 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 163 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 167 B | 0644 |
|
module.info.ms | File | 120 B | 0644 |
|
module.info.ms.auto | File | 23 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 153 B | 0644 |
|
module.info.nl | File | 39 B | 0644 |
|
module.info.nl.auto | File | 111 B | 0644 |
|
module.info.no | File | 38 B | 0644 |
|
module.info.no.auto | File | 112 B | 0644 |
|
module.info.pl | File | 38 B | 0644 |
|
module.info.pl.auto | File | 120 B | 0644 |
|
module.info.pt | File | 37 B | 0644 |
|
module.info.pt.auto | File | 116 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 162 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 157 B | 0644 |
|
module.info.ru | File | 60 B | 0644 |
|
module.info.ru.auto | File | 185 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 166 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 155 B | 0644 |
|
module.info.sv | File | 28 B | 0644 |
|
module.info.sv.auto | File | 116 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 303 B | 0644 |
|
module.info.tr | File | 34 B | 0644 |
|
module.info.tr.auto | File | 123 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 245 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 266 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 187 B | 0644 |
|
module.info.zh | File | 27 B | 0644 |
|
module.info.zh.auto | File | 104 B | 0644 |
|
module.info.zh_TW | File | 33 B | 0644 |
|
module.info.zh_TW.auto | File | 110 B | 0644 |
|
range.js | File | 4.7 KB | 0644 |
|
reboot.cgi | File | 261 B | 0755 |
|
relabel.cgi | File | 417 B | 0755 |
|
save_part.cgi | File | 3.75 KB | 0755 |
|
slider.js | File | 14.48 KB | 0644 |
|
timer.js | File | 2.86 KB | 0644 |
|
tunefs.cgi | File | 689 B | 0755 |
|
tunefs_form.cgi | File | 722 B | 0755 |
|
winclassic.css | File | 1.72 KB | 0644 |
|