diff --git a/disk/src/disk.rs b/disk/src/disk.rs index 8fe112fc27..961e4c12bc 100644 --- a/disk/src/disk.rs +++ b/disk/src/disk.rs @@ -10,7 +10,7 @@ use std::sync::Arc; use async_trait::async_trait; use base::{ - AsRawDescriptors, FileAllocate, FileReadWriteAtVolatile, FileSetLen, FileSync, PunchHole, + info, AsRawDescriptors, FileAllocate, FileReadWriteAtVolatile, FileSetLen, FileSync, PunchHole, SeekHole, WriteZeroesAt, }; use cros_async::Executor; @@ -280,6 +280,7 @@ pub fn detect_image_type(file: &File) -> Result { let orig_seek = f.seek(SeekFrom::Current(0)).map_err(Error::SeekingFile)?; f.seek(SeekFrom::Start(0)).map_err(Error::SeekingFile)?; + info!("disk size {}, ", disk_size); // Try to read the disk in a nicely-aligned block size unless the whole file is smaller. const MAGIC_BLOCK_SIZE: usize = 4096; #[repr(align(512))] diff --git a/src/error.rs b/src/error.rs index 93b8c0097d..a7353a4b5c 100644 --- a/src/error.rs +++ b/src/error.rs @@ -50,8 +50,10 @@ pub enum Error { CrasSoundDeviceNew(virtio::snd::cras_backend::Error), #[cfg(feature = "audio")] CreateAc97(devices::PciDeviceError), + CreateAsyncDiskError(disk::Error), CreateConsole(devices::SerialError), CreateControlServer(io::Error), + CreateDiskCheckAsyncOkError(disk::Error), CreateDiskError(disk::Error), CreateEvent(base::Error), CreateGrallocError(rutabaga_gfx::RutabagaError), @@ -186,8 +188,12 @@ impl Display for Error { CrasSoundDeviceNew(e) => write!(f, "failed to create cras sound device: {}", e), #[cfg(feature = "audio")] CreateAc97(e) => write!(f, "failed to create ac97 device: {}", e), + CreateAsyncDiskError(e) => write!(f, "failed to create virtual disk (async): {}", e), CreateConsole(e) => write!(f, "failed to create console device: {}", e), CreateControlServer(e) => write!(f, "failed to create control server: {}", e), + CreateDiskCheckAsyncOkError(e) => { + write!(f, "failed to create virtual disk checking async: {}", e) + } CreateDiskError(e) => write!(f, "failed to create virtual disk: {}", e), CreateEvent(e) => write!(f, "failed to create event: {}", e), CreateGrallocError(e) => write!(f, "failed to create gralloc: {}", e), diff --git a/src/linux.rs b/src/linux.rs index 422ffa1758..d7d5d229a0 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -225,8 +225,10 @@ fn create_block_device(cfg: &Config, disk: &DiskOption, disk_device_tube: Tube) }; flock(&raw_image, lock_op, true).map_err(Error::DiskImageLock)?; - let dev = if disk::async_ok(&raw_image).map_err(Error::CreateDiskError)? { - let async_file = disk::create_async_disk_file(raw_image).map_err(Error::CreateDiskError)?; + info!("Trying to attach block device: {}", disk.path.display()); + let dev = if disk::async_ok(&raw_image).map_err(Error::CreateDiskCheckAsyncOkError)? { + let async_file = + disk::create_async_disk_file(raw_image).map_err(Error::CreateAsyncDiskError)?; Box::new( virtio::BlockAsync::new( virtio::base_features(cfg.protected_vm),