Ubuntu新增硬盘后,如何在不修改代码的情况下让ZoneMinder事件文件存储至该硬盘并将其作为系统盘扩展?
Ubuntu新增硬盘后,如何在不修改代码的情况下让ZoneMinder事件文件存储至该硬盘并将其作为系统盘扩展?
嗨,看了你的情况,给你两个实用方案,都不用改ZoneMinder的代码,你可以根据需求选:
方案一:挂载绑定(直接让ZM事件目录指向新硬盘)
这个方法最简单,相当于把ZoneMinder的事件存储目录“映射”到新硬盘上,系统和ZM都会以为还是在用原来的路径,但实际数据存在新硬盘里。
- 先备份现有事件文件,避免操作失误丢失数据:
sudo cp -r /var/cache/zoneminder/events/2 /hdd/zoneminder_events_backup
- 清空原目录内容(确认备份完成后再执行):
sudo rm -rf /var/cache/zoneminder/events/2/*
- 在新硬盘上创建对应的存储目录:
sudo mkdir -p /hdd/zoneminder/events/2
- 设置正确的权限,确保ZoneMinder能正常读写这个目录:
sudo chown -R www-data:www-data /hdd/zoneminder/events/2 sudo chmod -R 755 /hdd/zoneminder/events/2
- 临时挂载测试:
sudo mount --bind /hdd/zoneminder/events/2 /var/cache/zoneminder/events/2
测试一下:往/var/cache/zoneminder/events/2里放个测试文件,然后去/hdd/zoneminder/events/2看看是不是同步存在了,没问题就继续下一步。
- 设置开机自动挂载:
编辑/etc/fstab文件:
sudo nano /etc/fstab
在文件末尾添加一行:
/hdd/zoneminder/events/2 /var/cache/zoneminder/events/2 none bind 0 0
保存退出后,执行以下命令验证配置没有错误:
sudo mount -a
如果没有报错,下次开机就会自动挂载了。
方案二:用LVM扩展系统盘(把新硬盘作为系统盘的一部分)
如果你想真正把新硬盘变成系统盘的扩展,让整个/分区都能用到新硬盘的空间,这个方案适合你,但前提是你的系统盘已经是LVM卷(可以先执行sudo lvdisplay看看有没有逻辑卷信息)。
⚠️ 注意:这个操作会清空新硬盘上的所有数据,一定要先备份/hdd里的内容!
- 将新硬盘转换成LVM物理卷:
sudo pvcreate /dev/sda1
- 找到系统盘所在的卷组:
执行以下命令,看VG Name那一行的名称(比如常见的ubuntu-vg):
sudo vgdisplay
- 把新物理卷加入卷组:
替换下面的ubuntu-vg为你实际的卷组名:
sudo vgextend ubuntu-vg /dev/sda1
- 扩展逻辑卷:
同样替换ubuntu-vg/ubuntu-lv为你的逻辑卷路径(可以从lvdisplay里找到):
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
- 扩展文件系统:
如果你的系统盘用的是ext4文件系统:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
如果是xfs文件系统:
sudo xfs_growfs /dev/ubuntu-vg/ubuntu-lv
执行完后,再用df -h看看,系统盘/的空间应该已经变大了,ZoneMinder的文件还是存在原来的路径,但实际会自动用到新硬盘的空间,完全不用改任何配置。
备注:内容来源于stack exchange,提问作者Rosie Smith
相关产品推荐
相关产品推荐

