mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
big simplify of dm dmraid raid functions
This commit is contained in:
parent
717c87b3fe
commit
0b1d6477fd
1 changed files with 38 additions and 61 deletions
|
@ -424,13 +424,13 @@ destdir_mounts(){
|
|||
# lists linux blockdevices
|
||||
blockdevices() {
|
||||
# all available block disk devices
|
||||
for dev in $(${_LSBLK} NAME,TYPE -d | grep "disk$" | cut -d' ' -f1); do
|
||||
for dev in $(${_LSBLK} NAME,TYPE | grep "disk$" | cut -d' ' -f1); do
|
||||
# exclude checks:
|
||||
#- exclude complete disks as raid_devices
|
||||
# $(cat /proc/mdstat 2>/dev/null | grep "$(basename ${dev}\\[)")
|
||||
#- dmraid_devices
|
||||
# $(dmraid -rc | grep ${dev})
|
||||
if ! [[ "$(cat /proc/mdstat 2>/dev/null | grep "$(basename ${dev}\\[)")" || "$(dmraid -rc | grep ${dev})" ]]; then
|
||||
# $(${_LSBLK} TYPE ${dev} | grep dmraid
|
||||
if ! [[ "$(cat /proc/mdstat 2>/dev/null | grep "$(basename ${dev}\\[)")" || "$(${_LSBLK} TYPE ${dev} | grep "dmraid")" ]]; then
|
||||
echo "${dev}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
|
@ -440,7 +440,7 @@ blockdevices() {
|
|||
# lists linux blockdevice partitions
|
||||
blockdevices_partitions() {
|
||||
# all available block devices partitions
|
||||
for part in $(${_LSBLK} NAME,TYPE -ds | grep "part$"| cut -d' ' -f1); do
|
||||
for part in $(${_LSBLK} NAME,TYPE | grep "part$"| cut -d' ' -f1); do
|
||||
# exclude checks:
|
||||
#- part of raid device
|
||||
# $(cat /proc/mdstat 2>/dev/null | grep "$(basename ${part})"
|
||||
|
@ -499,74 +499,51 @@ partitionable_raid_devices_partitions() {
|
|||
done
|
||||
}
|
||||
|
||||
# lists default linux dmraid devices
|
||||
# lists linux dmraid devices
|
||||
dmraid_devices() {
|
||||
if [[ -d /dev/mapper ]]; then
|
||||
for fakeraid in $(dmraid -s -c); do
|
||||
if [[ "$(echo ${fakeraid} | grep '_')" ]]; then
|
||||
echo "/dev/mapper/${fakeraid}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
for dev in $(${_LSBLK} NAME,TYPE | grep "dmraid$" | cut -d' ' -f 1 | grep -v "_.*p.*$" | sort -u); do
|
||||
echo "${dev}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
done
|
||||
}
|
||||
|
||||
# check_dm_devices
|
||||
# - remove part of encrypted devices
|
||||
# - remove part of lvm
|
||||
# - remove part ot raid
|
||||
check_dm_devices() {
|
||||
for devpath in $(ls /dev/mapper 2>/dev/null | grep -v control); do
|
||||
k="$(${_LSBLK} NAME,FSTYPE /dev/mapper/${devpath} 2>/dev/null | grep "crypto_LUKS$" | cut -d' ' -f 1)"
|
||||
partofcrypt="${partofcrypt} ${k}"
|
||||
done
|
||||
for devpath in $(ls /dev/mapper 2>/dev/null | grep -v control); do
|
||||
k="$(${_LSBLK} NAME,FSTYPE /dev/mapper/${devpath} 2>/dev/null | grep "LVM2_member$" | cut -d' ' -f 1)"
|
||||
partoflvm="${partoflvm} ${k}"
|
||||
done
|
||||
for devpath in $(ls /dev/mapper 2>/dev/null | grep -v control); do
|
||||
k="$(${_LSBLK} NAME,FSTYPE /dev/mapper/${devpath} 2>/dev/null | grep "linux_raid_member$" | cut -d' ' -f 1)"
|
||||
partofraid="${partofraid} ${k}"
|
||||
# dmraid_partitions
|
||||
# - show dmraid partitions
|
||||
dmraid_partitions() {
|
||||
for part in $(${_LSBLK} NAME,TYPE | grep "dmraid$" | cut -d' ' -f 1 | grep "_.*p.*$" | sort -u); do
|
||||
# exclude checks:
|
||||
# - part of lvm2 device
|
||||
# ${_LSBLK} FSTYPE ${dev} | grep "LVM2_member")
|
||||
# - part of luks device
|
||||
# $(${_LSBLK} FSTYPE ${dev} | grep "crypto_LUKS")
|
||||
# - part of raid device
|
||||
# $(${_LSBLK} FSTYPE ${dev} | grep "linux_raid_member$")
|
||||
# - extended partition
|
||||
# $(sfdisk -l 2>/dev/null | grep "${part}" | grep "Extended$")
|
||||
if ! [[ "$(${_LSBLK} FSTYPE ${part} | grep "crypto_LUKS$")" || "$(${_LSBLK} FSTYPE ${part} | grep "LVM2_member$")" || "$(${_LSBLK} FSTYPE ${part} | grep "linux_raid_member$")" || "$(sfdisk -l 2>/dev/null | grep "${part}" | grep "Extended$")" ]]; then
|
||||
echo "${part}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# dm_devices
|
||||
# - show device mapper devices
|
||||
dm_devices() {
|
||||
check_dm_devices
|
||||
for i in $(dmraid -s -c); do
|
||||
EXCLUDE_DMRAID=""
|
||||
if [[ "$(echo ${i} | grep '_')" ]]; then
|
||||
EXCLUDE_DMRAID="${EXCLUDE_DMRAID} -e ${i} "
|
||||
# lvm2 and cryptdevices
|
||||
for dev in $(${_LSBLK} NAME,TYPE | grep -e "lvm$" -e "crypt$" | cut -d' ' -f1); do
|
||||
# exclude checks:
|
||||
# - part of lvm2 device
|
||||
# ${_LSBLK} FSTYPE ${dev} | grep "LVM2_member")
|
||||
# - part of luks device
|
||||
# $(${_LSBLK} FSTYPE ${dev} | grep "crypto_LUKS")
|
||||
# - part of raid device
|
||||
# $(${_LSBLK} FSTYPE ${dev} | grep "linux_raid_member$")
|
||||
if ! [[ "$(${_LSBLK} FSTYPE ${dev} | grep "crypto_LUKS$")" || "$(${_LSBLK} FSTYPE ${dev} | grep "LVM2_member$")" || "$(${_LSBLK} FSTYPE ${dev} | grep "linux_raid_member$")" ]]; then
|
||||
echo "${dev}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
done
|
||||
if [[ -d /dev/mapper ]]; then
|
||||
for devpath in $(ls /dev/mapper 2>/dev/null | grep -v -e control ${EXCLUDE_DMRAID}); do
|
||||
if ! [[ "$(ls ${partofcrypt} 2>/dev/null | grep /dev/mapper/${devpath}$)" || "$(ls ${partoflvm} 2>/dev/null | grep /dev/mapper/${devpath}$)" || "$(ls ${partofraid} 2>/dev/null | grep /dev/mapper/${devpath}$)" ]]; then
|
||||
echo "/dev/mapper/${devpath}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# dmraid_partitions
|
||||
# - show dmraid partitions
|
||||
dmraid_partitions() {
|
||||
check_dm_devices
|
||||
if [[ -d /dev/mapper ]]; then
|
||||
for fakeraid in $(dmraid -s -c); do
|
||||
if [[ "$(echo ${fakeraid} | grep '_')" ]]; then
|
||||
for k in $(ls /dev/mapper/${fakeraid}*); do
|
||||
devpath=$(basename ${k})
|
||||
if ! [[ "$(dmraid -s -c | grep ${devpath}$)" || "$(ls ${partofcrypt} 2>/dev/null | grep /dev/mapper/${devpath}$)" || "$(ls ${partoflvm} 2>/dev/null | grep /dev/mapper/${devpath}$)" || "$(ls ${partofraid} 2>/dev/null | grep /dev/mapper/${devpath}$)" ]]; then
|
||||
echo "/dev/mapper/${devpath}"
|
||||
[[ "${1}" ]] && echo ${1}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
finddisks() {
|
||||
|
|
Loading…
Reference in a new issue