mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-28 15:36:29 +00:00
* Deactivate any external data disk device on first boot (#2390) * Use lsblk to determine the underlying device file Comparing major number is not reliable, e.g. virtio disks have the same major number despite being different devices. Use lsblk to find the underlying device, and compare the device name instead.
This commit is contained in:
parent
24f3efdbe3
commit
5200096c4e
@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=HAOS data disk detach
|
||||
DefaultDependencies=no
|
||||
Before=mnt-data.mount
|
||||
RefuseManualStart=true
|
||||
RefuseManualStop=true
|
||||
Requires=dev-disk-by\x2dlabel-hassos\x2ddata.device
|
||||
After=dev-disk-by\x2dlabel-hassos\x2ddata.device systemd-fsck@dev-disk-by\x2dlabel-hassos\x2ddata.service
|
||||
ConditionFirstBoot=yes
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/libexec/haos-data-disk-detach
|
||||
|
||||
[Install]
|
||||
WantedBy=local-fs.target
|
23
buildroot-external/rootfs-overlay/usr/libexec/haos-data-disk-detach
Executable file
23
buildroot-external/rootfs-overlay/usr/libexec/haos-data-disk-detach
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Find root using rdev command
|
||||
rootpart=$(rdev | cut -f 1 -d ' ')
|
||||
rootdev=$(lsblk -no pkname "${rootpart}")
|
||||
|
||||
# Wait up to 10s for devices to enumerate
|
||||
sleep 10s
|
||||
|
||||
datapartitions=$(blkid --match-token LABEL="hassos-data" --output device)
|
||||
|
||||
for datapart in ${datapartitions}
|
||||
do
|
||||
datadev=$(lsblk -no pkname "${datapart}")
|
||||
|
||||
# If major does not match our root device major, it is an external data
|
||||
# disk. Rename to make sure it gets ignored.
|
||||
if [ "$rootdev" != "$datadev" ]
|
||||
then
|
||||
echo "Found external data disk device on ${datapart}, mark it disabled..."
|
||||
e2label "${datapart}" hassos-data-dis
|
||||
fi
|
||||
done
|
Loading…
x
Reference in New Issue
Block a user