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. All necessary Hyper-V related kernel options are turned on:
CONFIG_HYPERV_STORAGE=y
CONFIG_HYPERV_NET=m
CONFIG_HYPERV_KEYBOARD=y
# CONFIG_HID_HYPERV_MOUSE is not set
CONFIG_HYPERV=y
CONFIG_HYPERV_UTILS=y
CONFIG_HYPERV_BALLOON=y
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! ...