next if (@cdstat && $st[1] == $cdstat[1]);
if ($disk->{'device'} =~ /\/sd([a-z]+)$/) {
# Old-style SCSI disk
- $disk->{'desc'} = &text('select_device', 'SCSI',uc($1));
+ $disk->{'desc'} = &text('select_device', 'SCSI',
+ uc($1));
local ($dscsi) = grep { $_->{'dev'} eq "sd$1" } @dscsi;
$disk->{'scsi'} = $dscsi ? &indexof($dscsi, @dscsi)
: ord(uc($1))-65;
$d->{'scsiid'} = int($2);
}
}
+ if ($d->{'model'} =~ /ATA/) {
+ # Fake SCSI disk, actually IDE
+ $d->{'scsi'} = 0;
+ $d->{'desc'} =~ s/SCSI/SATA/g;
+ foreach my $p (@{$d->{'parts'}}) {
+ $p->{'desc'} =~ s/SCSI/SATA/g;
+ }
+ }
}
}
# Converts a device name to a human-readable form
sub device_name
{
+# First try to get name from fdisk module, as it knowns better about IDE
+# and SCSI devices
+if (&foreign_check("fdisk")) {
+ &foreign_require("fdisk");
+ my @disks = &fdisk::list_disks_partitions();
+ foreach my $d (@disks) {
+ if ($d->{'device'} eq $_[0]) {
+ return $d->{'desc'};
+ }
+ foreach my $p (@{$d->{'parts'}}) {
+ if ($p->{'device'} eq $_[0]) {
+ return $p->{'desc'};
+ }
+ }
+ }
+ }
+
if (!$text{'select_part'}) {
local %flang = &load_language('fdisk');
foreach $k (keys %flang) {