我创建了一个文件
touch /datastore/virtual/pseudoblock
用它创建了一个循环设备
sudo losetup /dev/loop0 /datastore/virtual/pseudoblock
(尽管我收到了关于其大小的警告)
然后用随机数据初始化它
dd if=/dev/urandom of=/dev/loop0 bs=1M count=100
我的问题是
a) 为什么它还没有显示在我的块设备列表中?
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 489.1G 0 disk
├─sdb2 8:18 0 488M 0 part /boot
├─sdb3 8:19 0 488.1G 0 part
│ └─sdb3_crypt 253:0 0 488.1G 0 crypt
│ ├─ubuntu--vg-root 253:1 0 472.2G 0 lvm /
│ └─ubuntu--vg-swap_1 253:2 0 15.9G 0 lvm [SWAP]
└─sdb1 8:17 0 512M 0 part /boot/efi
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─sda1_crypt 253:3 0 931.5G 0 crypt
└─store--vg-store1tb 253:4 0 931.5G 0 lvm /datastore
/etc/fstab
b)由于我无法获取它,如何永久安装它UUID
?
$ blkid
/dev/mapper/sdb3_crypt: UUID="fSHjbj-51K2-QfhI-G0Wb-o3lN-4pE1-BB4wCP" TYPE="LVM2_member"
/dev/mapper/ubuntu--vg-root: UUID="9e452886-4d8g-fj54-854c-80bc171826e8" TYPE="ext4"
致力于
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
和
$ uname -a
Linux pkara-pc01 4.15.0-42-generic #45~16.04.1-Ubuntu SMP Mon Nov 19 13:02:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
答案1
您缺少创建文件系统的步骤。
dd if=/dev/urandom of=pseudoblock bs=1M count=100
losetup /dev/loop0 pseudoblock
现在您可以在其上创建文件系统。
mkfs.ext4 /dev/loop0
完成此操作后,我可以获得一个 UUID(这标识了文件系统,因此如果您尚未创建文件系统,则不会获得 UUID),然后找到它。
blkid
/dev/vda1: UUID="a76b548b-f4e4-4616-bea0-469775cb852d" TYPE="ext4" PARTUUID="8395c684-01"
/dev/loop0: UUID="bb784e83-8484-4822-8930-20e02f689450" TYPE="ext4"
然后我安装它,我可以在里面写东西。
mount /dev/loop0 /mnt/loop
一旦使用文件系统初始化了伪块设备,您就可以使用 fstab 直接挂载它,使用类似的行(不再需要使用 losetup,并且实际上不需要 UUID,该文件不像 /dev 设备那样可以以不同的顺序进行探测,它不会移动,因此使用其绝对路径没有问题)。
/root/pseudoblock /mnt/loop auto loop 0 0