编辑
2021-04-10
DevOps
00
请注意,本文编写于 1120 天前,最后修改于 654 天前,其中某些信息可能已经过时。

目录

修改容器配置
关闭防火墙
确定硬盘id和关系
绑定硬盘
设置自动挂载脚本
全家福

最近优化一下家里的all in one,为了节约内存,决定用轻量化的lxc容器来替代虚拟机安装omv,接下来就是直通硬盘了,步骤如下:

修改容器配置

修改容器配置/etc/pve/lxc/ID.conf

关闭防火墙

#关闭防火墙(只针对当前LXC容器而言) lxc.apparmor.profile: unconfined

如果你不想添加,可以看这个英文教程添加防火墙配置文件,不过我没成功,一气之下,干脆关了。

确定硬盘id和关系

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:08: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
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:mereith

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!