无法创建用于测试的 flakey 文件系统

Den*_*son 5 testing lvm

在 Ubuntu 14.04 中,当我尝试时:

sudo dmsetup create test --table '0 123 flakey 1 0 /dev/loop0'
Run Code Online (Sandbox Code Playgroud)

(或delay目标),我收到一个错误:

设备映射器:在测试失败时重新加载 ioctl:无效参数
命令失败

但是当我使用error目标时它成功了。

如何使用创建“flakey”设备dmsetup

use*_*.dz 4

简短回答:

细节:

  • 我得到同样的错误,使用循环文件系统

    ~$ sudo mount -o loop image.iso  ~/Desktop/rmme0
    mount: /dev/loop4 is write-protected, mounting read-only
    
    ~$ sudo dmsetup create test --table '0 123 flakey 1 0 /dev/loop4'
    device-mapper: reload ioctl on test failed: Invalid argument
    Command failed
    
    Run Code Online (Sandbox Code Playgroud)

    这是错误的语法,可以找到参考:

    linux-doc(包):/usr/share/doc/linux-doc/device-mapper/ dm-flakey.txt

    Table parameters
    ----------------
    <dev path> <offset> <up interval> <down interval> \
        [<num_features> [<feature arguments>]]
    
    Mandatory parameters:
        <dev path>: Full pathname to the underlying block-device, or a
                    "major:minor" device-number.
        <offset>: Starting sector within the device.
        <up interval>: Number of seconds device is available.
        <down interval>: Number of seconds device returns errors.
    
    Run Code Online (Sandbox Code Playgroud)
  • 再次如此:

    ~$ sudo dmsetup -v create test --table '0 123 flakey /dev/loop4 0 10 2'
    device-mapper: reload ioctl on test failed: Device or resource busy
    Command failed
    
    Run Code Online (Sandbox Code Playgroud)

    找到这个线程:device-mapper:remove ioctl failed:设备或资源繁忙命令失败。最终,当底层文件系统已安装时,可能会引发该消息。

    所以,检查硬盘分区

    ~$ sudo dmsetup create test --table '0 123 flakey /dev/sda1 0 10 2'
    ~$ file /dev/mapper/test 
    /dev/mapper/test: symbolic link to ../dm-0
    
    Run Code Online (Sandbox Code Playgroud)

    您可以使用 verbose 标志详细验证:

    sudo dmsetup -vvv create test --table '0 123 flakey /dev/sda1 0 10 2'

  • 不应安装循环设备,因此避免使用mount它来创建它。另一种方法,使用losetup

    sudo losetup /dev/loop4 image.iso
    sudo dmsetup create test --table '0 123 flakey /dev/loop4 0 10 2'
    
    Run Code Online (Sandbox Code Playgroud)

在Xubuntu 16.04(真机)上测试