2015-12-08 74 views
0

我們有一個基於LFS的定製Linux,我們將它導入Azure。我們把它作爲一個經典的虛擬機來運行。內核將Azure上的虛擬磁盤識別爲hda和sda

系統啓動並顯示運行良好,但真正奇怪的事發生在虛擬磁盤上。它們曾經在hdX上作爲ide磁盤出現,在sdx上作爲sata磁盤出現過。

[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 

此外,如果你檢查的fdisk -l的輸出,你會看到每個分區hdXY的開始/結束塊等於sdXY。

使用內核3.18.16以及使用內核4.1.10時,會發生這種情況。

我也檢查了Azure虛擬機的XML配置文件,但它沒有包含任何有關磁盤控制器的信息。

有沒有辦法完全禁用ide/ata控制器? 任何其他的想法如何解決這個問題?

BTW,我發現了這樣做的原因是日誌條目羣衆的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! 
... 

回答

1

我找到了解決辦法:Linux內核選項CONFIG_IDE必須被禁用。

太糟糕了,它默認啓用..

相關問題