如何将 /var/log 移动到 btrfs 子卷? (ubuntu 15.04 桌面版)
How can I move /var/log to a btrfs subvolume? (ubuntu 15.04 desktop)
我正在尝试移动 /var/log/。到它自己的子卷。我已经尝试了很多事情,但是 /etc/fstab 条目从来没有达到我希望的效果。我这里的示例使用 /spam
因为我不想在解决这个问题时破坏日志文件。我的问题在下面的粗体中。
我不会用行不通的东西来烦你。但这是我所在的位置:
thor / 158# btrfs subvolume create /spam
Create subvolume '//spam'
thor / 161# ll -d spam
drwxr-xr-x 1 root root 0 Jul 25 16:19 spam/
thor / 163# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 1540072 0 1540072 0% /dev
tmpfs tmpfs 310140 5380 304760 2% /run
/dev/sdb1 btrfs 33739776 7791536 24482480 25% /
tmpfs tmpfs 1550684 156 1550528 1% /dev/shm
tmpfs tmpfs 5120 4 5116 1% /run/lock
tmpfs tmpfs 1550684 0 1550684 0% /sys/fs/cgroup
/dev/sdb1 btrfs 33739776 7791536 24482480 25% /home
cgmfs tmpfs 100 0 100 0% /run/cgmanager/fs
tmpfs tmpfs 310140 44 310096 1% /run/user/1000
thor / 164# btrfs subvolume list /
ID 257 gen 289 top level 5 path @
ID 258 gen 286 top level 5 path @home
ID 263 gen 41 top level 257 path var/lib/machines
ID 275 gen 287 top level 257 path spam
thor / 165# grep -v '^#' /etc/fstab
UUID=ee321c37-2ccc-4016-aa0b-9cf9280be11e / btrfs defaults,subvol=@ 0 1
UUID=ee321c37-2ccc-4016-aa0b-9cf9280be11e /home btrfs defaults,subvol=@home 0 2
UUID=aff22fd4-48d6-4c8c-9c2e-260c05028fba none swap sw 0 0
thor / 166#
我的 OpenSUSE 机器(因此 UUID 不同)从 fstab
安装了一堆子卷,其中的条目如下:
UUID=2c2aa4ed-bb4e-4c44-b222-4e75dc0469f2 /spam btrfs subvol=spam 0 0
如果我在 Ubuntu 机器上尝试此操作,它无法启动。来自单用户模式的 strace
显示 mount(2)
失败并显示:
mount("/dev/sdb1", "/spam", "btrfs", MS_MGC_VAL, "subvol=spam") = -1 ENOENT (No such file or directory)
此外,如果我 df 目录,我得到这个:
thor /spam 174# df -T /spam/.
Filesystem Type 1K-blocks Used Available Use% Mounted on
- - 33739776 7791776 24482368 25% /spam
thor /spam 175#
我的第一个问题:我错过了什么? 有问题是因为它的行为不当。
第二个问题:我发帖的地方对吗?
谢谢!
更新 1:
thor /spam 175# uname -a
Linux thor 3.19.0-23-generic #24-Ubuntu SMP Tue Jul 7 18:52:29 UTC 2015 i686 i686 i686 GNU/Linux
My first question: What am I missing? Something's wrong because it's mis-behaving.
目前,您的 spam
子卷相对于 btrfs 根的路径是 @/spam
因为 spam
子卷是在 @
子卷中创建的。使用 btrfs sub list -a /
可以看到这一点。您将需要 subvol=@/spam
in fstab
来安装它。
但我认为您实际上想在 btrfs 根目录本身中创建子卷,在这种情况下,您需要将根目录挂载到某处以创建子卷:
mkdir -p /mnt/tmp/
mount -o subvol=/ /dev/sdb1 /mnt/tmp/
btrfs sub create /mnt/tmp/spam/
Second question: Am I posting in the right place?
对于此类问题,我建议 Unix/Linux Stack Exchange。
我正在尝试移动 /var/log/。到它自己的子卷。我已经尝试了很多事情,但是 /etc/fstab 条目从来没有达到我希望的效果。我这里的示例使用 /spam
因为我不想在解决这个问题时破坏日志文件。我的问题在下面的粗体中。
我不会用行不通的东西来烦你。但这是我所在的位置:
thor / 158# btrfs subvolume create /spam
Create subvolume '//spam'
thor / 161# ll -d spam
drwxr-xr-x 1 root root 0 Jul 25 16:19 spam/
thor / 163# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 1540072 0 1540072 0% /dev
tmpfs tmpfs 310140 5380 304760 2% /run
/dev/sdb1 btrfs 33739776 7791536 24482480 25% /
tmpfs tmpfs 1550684 156 1550528 1% /dev/shm
tmpfs tmpfs 5120 4 5116 1% /run/lock
tmpfs tmpfs 1550684 0 1550684 0% /sys/fs/cgroup
/dev/sdb1 btrfs 33739776 7791536 24482480 25% /home
cgmfs tmpfs 100 0 100 0% /run/cgmanager/fs
tmpfs tmpfs 310140 44 310096 1% /run/user/1000
thor / 164# btrfs subvolume list /
ID 257 gen 289 top level 5 path @
ID 258 gen 286 top level 5 path @home
ID 263 gen 41 top level 257 path var/lib/machines
ID 275 gen 287 top level 257 path spam
thor / 165# grep -v '^#' /etc/fstab
UUID=ee321c37-2ccc-4016-aa0b-9cf9280be11e / btrfs defaults,subvol=@ 0 1
UUID=ee321c37-2ccc-4016-aa0b-9cf9280be11e /home btrfs defaults,subvol=@home 0 2
UUID=aff22fd4-48d6-4c8c-9c2e-260c05028fba none swap sw 0 0
thor / 166#
我的 OpenSUSE 机器(因此 UUID 不同)从 fstab
安装了一堆子卷,其中的条目如下:
UUID=2c2aa4ed-bb4e-4c44-b222-4e75dc0469f2 /spam btrfs subvol=spam 0 0
如果我在 Ubuntu 机器上尝试此操作,它无法启动。来自单用户模式的 strace
显示 mount(2)
失败并显示:
mount("/dev/sdb1", "/spam", "btrfs", MS_MGC_VAL, "subvol=spam") = -1 ENOENT (No such file or directory)
此外,如果我 df 目录,我得到这个:
thor /spam 174# df -T /spam/.
Filesystem Type 1K-blocks Used Available Use% Mounted on
- - 33739776 7791776 24482368 25% /spam
thor /spam 175#
我的第一个问题:我错过了什么? 有问题是因为它的行为不当。 第二个问题:我发帖的地方对吗? 谢谢!
更新 1:
thor /spam 175# uname -a
Linux thor 3.19.0-23-generic #24-Ubuntu SMP Tue Jul 7 18:52:29 UTC 2015 i686 i686 i686 GNU/Linux
My first question: What am I missing? Something's wrong because it's mis-behaving.
目前,您的 spam
子卷相对于 btrfs 根的路径是 @/spam
因为 spam
子卷是在 @
子卷中创建的。使用 btrfs sub list -a /
可以看到这一点。您将需要 subvol=@/spam
in fstab
来安装它。
但我认为您实际上想在 btrfs 根目录本身中创建子卷,在这种情况下,您需要将根目录挂载到某处以创建子卷:
mkdir -p /mnt/tmp/
mount -o subvol=/ /dev/sdb1 /mnt/tmp/
btrfs sub create /mnt/tmp/spam/
Second question: Am I posting in the right place?
对于此类问题,我建议 Unix/Linux Stack Exchange。