user3527106
user3527106

Reputation: 11

Kernel recognizes virtual disks on Azure both as hda and sda

We have a custom Linux based on LFS, which we imported to Azure. There we run it as a classical virtual machine.

The system boots up and appears to run fine, but really weird things happen to the virtual disks. They appear once as ide disks on hdX and once as sata disks on sdx.

[dl-azure-jp-east-pub-1:~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
hda      3:0    0   21G  0 disk 
|-hda1   3:1    0 1024M  0 part 
|-hda2   3:2    0   50M  0 part 
|-hda3   3:3    0  100M  0 part 
|-hda4   3:4    0    1K  0 part 
|-hda5   3:5    0  5.9G  0 part 
|-hda6   3:6    0  5.9G  0 part 
`-hda7   3:7    0  8.1G  0 part 
hdb      3:64   0   70G  0 disk 
`-hdb1   3:65   0   70G  0 part 
hdc     22:0    1    4G  0 disk 
sda      8:0    0   21G  0 disk 
|-sda1   8:1    0 1024M  0 part [SWAP]
|-sda2   8:2    0   50M  0 part /boot
|-sda3   8:3    0  100M  0 part 
|-sda4   8:4    0    1K  0 part 
|-sda5   8:5    0  5.9G  0 part /usr/backup
|-sda6   8:6    0  5.9G  0 part /
`-sda7   8:7    0  8.1G  0 part /shared
sdb      8:16   0   70G  0 disk 
`-sdb1   8:17   0   70G  0 part 

Also if you check the output of fdisk -l, you would see the the start/end block of every partition hdXY is equal to sdXY.

This happens for us when using kernel 3.18.16 as well as when using kernel 4.1.10.

I also checked the XML configuration file of the Azure VM, but it does not contain any information about the disk controllers.

Is there a way to completely disable the ide/ata controller? Any other thoughts how to solve this problem?

BTW, the reason I found out about this were the masses of log entries in dmesg:

....
[ 4451.750444] hdb: task_no_data_intr: status=0x51 { DriveReady   SeekComplete Error }
[ 4451.750461] hdb: task_no_data_intr: error=0x04 { DriveStatusError }
[ 4451.750463] hdb: possibly failed opcode: 0xea
[ 4451.750563] hdb: wcache flush failed!
[ 4451.750840] hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
[ 4451.750856] hda: task_no_data_intr: error=0x04 { DriveStatusError }
[ 4451.750858] hda: possibly failed opcode: 0xea
[ 4451.750957] hda: wcache flush failed!
[ 4451.757472] hdb: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
[ 4451.757490] hdb: task_no_data_intr: error=0x04 { DriveStatusError }
[ 4451.757492] hdb: possibly failed opcode: 0xea
[ 4451.757606] hdb: wcache flush failed!
...

Upvotes: 0

Views: 289

Answers (1)

user3527106
user3527106

Reputation: 11

I found the solution: the Linux kernel option CONFIG_IDE must be disabled.

Too bad it is enabled by default..

Upvotes: 1

Related Questions