Opensuse
如何創建名稱包含“@”的 BTRFS 子卷?
我正在嘗試自動創建和安裝 btrfs 子卷。我很容易創建它們並創建 fstab 條目,但更難解析子卷 ID。
我注意到其他子卷具有前綴為“@”的可預測名稱,並且它們以這種方式安裝在 /etc/fstab
UUID=280d6f04-6ad0-4647-96b9-580aec12bbdc /var/log btrfs noatime,subvol=@/var/log 0 0
確實,通過這樣的標籤安裝
$ mount -o subvol=@/var/log photoshop-32
使用“正常”名稱掛載子卷失敗
$ mount -o subvol=var/users/robert/wines/photoshop-32 /var/users/robert/wines/photoshop-32/ mount: mount(2) failed: /var/users/robert/wines/photoshop-32: No such file or directory
因此,我嘗試使用這樣的名稱創建子卷,但失敗了
# btrfs subvolume create /var/users/robert/wines/blah/@/var/users/robert/wines/blah ERROR: cannot access '/var/users/robert/wines/blah/@/var/users/robert/wines': No such file or directory # btrfs subvolume create /@/var/users/robert/wines/blah ERROR: cannot access '/@/var/users/robert/wines': No such file or directory # btrfs subvolume create //@/var/users/robert/wines/blah # ERROR: cannot access '//@/var/users/robert/wines': No such file or directory
如何創建名稱中帶有“@”的子卷?或者,如何在無需查找子卷 ID 的情況下掛載子卷?
感謝 IRC 上的#btrfs 頻道(完整參考),我發現了以下內容:
- 這些子卷子卷是在子卷下創建的
subvolid=0
,預設不掛載- 要創建這樣的子卷,首先掛載該頂級子卷,然後在其下創建子卷
例如,在我的場景中:
# mount UUID=280d6f04-6ad0-4647-96b9-580aec12bbdc -o subvolid=0 btrfs-sys/ # tree -L 2 /mnt/btrfs-sys/ /mnt/btrfs-sys/ └── @ ├── boot ├── etc ├── opt ├── srv ├── tmp ├── usr └── var