最近优化一下家里的all in one
,为了节约内存,决定用轻量化的lxc
容器来替代虚拟机安装omv
,接下来就是直通硬盘了,步骤如下:
修改容器配置/etc/pve/lxc/ID.conf
#关闭防火墙(只针对当前LXC容器而言) lxc.apparmor.profile: unconfined
如果你不想添加,可以看这个英文教程添加防火墙配置文件,不过我没成功,一气之下,干脆关了。
ls -al /dev/sd* #或者 ls -al /dev/disk/by-label
反正最后比如我想找我的sda1
设备,那我得到了以下输出:
# ls -al /dev/sda brw-rw---- 1 root disk 8, 0 Dec 19 11:16 /dev/sda1 # ls -al /dev/sda1 brw-rw---- 1 root disk 8, 1 Dec 19 11:16 /dev/sda1
可以看出,sda=> 8,0
sda1=>8,1
继续编辑lxc配置文件,添加:
lxc.cgroup.devices.allow: b 8:0 rwm lxc.cgroup.devices.allow: b 8:1 rwm
这个8:0
和8:1
就是刚才我们得到的。
在pve
中,创建/var/lib/lxc/ID/mount-hook.sh
文件,其中ID就是你的lxc的ID:
#!/bin/sh mknod -m 777 ${LXC_ROOTFS_MOUNT}/dev/sda b 8 0 mknod -m 777 ${LXC_ROOTFS_MOUNT}/dev/sda1 b 8 1
然后chmod +x
一下,然后在lxc配置文件
中添加:
lxc.autodev: 1 lxc.hook.autodev: /var/lib/lxc/ID/mount-hook.sh
然后根据我们要挂载的设备,再添加一行(有个教程说不用,但是我加上了,然后成功了):
lxc.mount.entry: /dev/sda1 /dev/sda1 bind,create=dir,optional 0 0
至此,可以启动容器了。
我的是挂载了/dev/mmcblk1p1
和/dev/sdb2
的,所以我最后是这样的:
arch: amd64 cores: 4 features: nesting=1 hostname: omv memory: 4096 nameserver: 192.168.5.2 net0: name=eth0,bridge=vmbr0,gw=192.168.5.2,hwaddr=56:3A:D8:AB:C9:18,ip=192.168.5.5/24,ip6=auto,type=veth onboot: 1 ostype: debian rootfs: local-lvm:vm-108-disk-0,size=16G swap: 4096 lxc.mount.auto: cgroup:rw lxc.mount.auto: proc:rw lxc.mount.auto: sys:rw lxc.cgroup.devices.allow: b 179:1 rwm lxc.cgroup.devices.allow: b 179:0 rwm lxc.cgroup.devices.allow: b 8:16 rwm lxc.cgroup.devices.allow: b 8:18 rwm lxc.apparmor.profile: unconfined lxc.autodev: 1 lxc.hook.autodev: /var/lib/lxc/108/mount-hook.sh lxc.mount.entry: /dev/mmcblk1p1 /dev/mmcblk1p1 bind,create=dir,optional 0 0 lxc.mount.entry: /dev/sdb2 /dev/sdb2 bind,create=dir,optional 0 0
本文作者:mereith
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!