[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#788062: os-prober corrupts LVs/partitions while being mounted inside a VM



Package: os-prober
Version: 1.65
Severity: critical

update-grub on a vhost running qemu/kvm virtual machines
while grub and os-prober is installed on the host might corrupt
guest virtual machines / guest disks.

Host
====

% lvs

  LV         VG            Attr       LSize
  root       vg_foobar_sys -wi-ao----   3.00g
  var_log    vg_foobar_sys -wi-ao---- 500.00m
  vm-luke    vg_foobar_dom -wi-ao----  40.00g

% virsh list --all

 Id    Name                    State
-------------------------------------
 9     luke                  running

% virsh domblklist luke
Target     Source
------------------------------------------------
vda        /dev/vg_foobar_dom/vm-luke

% apt-get upgrade

(linux-image-3.16.0-4-amd64 gets upgraded)
(update-grub is called)

% dmesg

Jun 08 09:31:25 sirius os-prober[7402]: debug: running /usr/lib/os-probes/50mounted-tests on /dev/mapper/vg_foobar_dom-vm--luke Jun 08 09:31:25 sirius kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem Jun 08 09:31:25 sirius kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem Jun 08 09:31:25 sirius kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem Jun 08 09:31:25 sirius kernel: XFS (dm-3): Invalid superblock magic number Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): bogus number of reserved sectors Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): Can't find a valid FAT filesystem Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): bogus number of reserved sectors Jun 08 09:31:25 sirius kernel: FAT-fs (dm-3): Can't find a valid FAT filesystem Jun 08 09:31:25 sirius kernel: VFS: Can't find a Minix filesystem V1 | V2 | V3 on device dm-3.
Jun 08 09:31:25 sirius kernel: hfsplus: unable to find HFS+ superblock
Jun 08 09:31:25 sirius kernel: qnx4: no qnx4 filesystem (no root dir).
Jun 08 09:31:25 sirius kernel: You didn't specify the type of your ufs filesystem

mount -t ufs -o ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...

>>>WARNING<<< Wrong ufstype may corrupt your filesystem, default is ufstype=old



Inside guest 'luke'
===================

[1100902.892807] end_request: I/O error, dev vda, sector 10774672
[1100902.893914] Buffer I/O error on device dm-2, logical block 10002
[1100902.894781] lost page write due to I/O error on dm-2
[1100902.895219] end_request: I/O error, dev vda, sector 31670147
[1100902.897132] I/O error in filesystem ("dm-2") meta-data dev dm-2 block 0x1400f83 ("xlog_iodone") error 5 buf count 1024 [1100902.898819] xfs_force_shutdown(dm-2,0x2) called from line 1043 of file /build/linux-2.6-pYQHNk/linux-2.6-2.6.32/debian/build/source_amd64_none/fs/xfs/xfs_log.c. Return address = 0xffffffffa01fcb89 [1100902.898827] Filesystem "dm-2": Log I/O Error Detected. Shutting down filesystem: dm-2 [1100902.899984] Please umount the filesystem, and rectify the problem(s)
[1100934.617120] Filesystem "dm-2": xfs_log_force: error 5 returned.
[1100970.617117] Filesystem "dm-2": xfs_log_force: error 5 returned.
[1101006.616137] Filesystem "dm-2": xfs_log_force: error 5 returned.


It's a bad idea to try to mount every block device found in the system
whilst the devices are being used. This could lead to catastrophic failure
if I/O heavy VMs get their "disks" corrupted this way.

To me this happened only to one out of 18 VMs but all but 'luke' didn't have much
I/O at the time.


Workaround
==========

% apt-get purge os-prober

OR

echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub


Reply to: