Mike Burns
2010-Mar-23 23:00 UTC
[Ovirt-devel] [PATCH node][RFC] Remove dependencies on /dev/disk/by-label entries
Use findfs LABEL=ABC and mount LABEL=ABC instead.
Signed-off-by: Mike Burns <mburns at redhat.com>
---
scripts/ovirt-config-boot | 29 ++++++++++++++++-------------
scripts/ovirt-config-storage | 2 --
scripts/ovirt-functions | 18 ++++++++++--------
3 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/scripts/ovirt-config-boot b/scripts/ovirt-config-boot
index ac43daa..b1fd469 100755
--- a/scripts/ovirt-config-boot
+++ b/scripts/ovirt-config-boot
@@ -29,14 +29,21 @@ ovirt_boot_setup() {
local disk2
local partN=-1
log "installing the image."
- if [ -h /dev/disk/by-label/Boot ]; then
+ local found_boot=false
+ if findfs LABEL=Boot 2>&1 >/dev/null ; then
+ found_boot=true
+ grub_dev_label=Boot
+ elif findfs LABEL=Root 2>&1 >/dev/null ; then
+ found_boot=true
+ grub_dev_label=Root
+ fi
+ if $found_boot; then
mount_boot
mountpoint /boot
if [ $? -ne 0 ] ; then
log "Boot partition not available"
return 1
fi
- grub_dev_label="Boot"
# Grab OVIRT_ISCSI VARIABLES from boot partition for upgrading
# file created only if OVIRT_ISCSI_ENABLED=y
if [ -f /boot/ovirt ]; then
@@ -50,7 +57,7 @@ ovirt_boot_setup() {
fi
# check that /boot mounted ok and find partition number for GRUB
- get_part_info $(readlink -f /dev/disk/by-label/$grub_dev_label disk partN
+ get_part_info $(readlink -f $(findfs LABEL=$grub_dev_label 2>/dev/null)
disk partN
rc=$?
if [ $rc -ne 0 -o $partN -lt 0 ]; then
log "unable to determine Root partition"
@@ -67,11 +74,11 @@ ovirt_boot_setup() {
# prepare Root partition update
candidate- if [ -e /dev/disk/by-label/RootBackup ]; then
+ if findfs LABEL=RootBackup 2>&1 >/dev/null; then
candidate=RootBackup
- elif [ -e /dev/disk/by-label/RootUpdate ]; then
+ elif findfs LABEL=RootUpdate 2>&1 >/dev/null; then
candidate=RootUpdate
- elif [ -e /dev/disk/by-label/RootNew ]; then
+ elif findfs LABEL=RootNew 2>&1 >/dev/null; then
candidate=RootNew
fi
if [ -z "$candidate" ]; then
@@ -80,7 +87,7 @@ ovirt_boot_setup() {
umount /liveos
rc=0
else
- candidate_dev=$(readlink -f /dev/disk/by-label/$candidate)
+ candidate_dev=$(findfs LABEL=$candidate 2>/dev/null)
e2label $candidate_dev RootNew
rc=$?
fi
@@ -90,7 +97,7 @@ ovirt_boot_setup() {
return $rc
fi
- mount $candidate_dev /liveos
+ mount $candidate_dev /liveos/
rm -rf /liveos/LiveOS
mkdir -p /liveos/LiveOS
@@ -212,11 +219,7 @@ if [ $rc -eq 0 -a "$doreboot" = "yes"
]; then
ovirt_store_firstboot_config
stop_log
- if [ "$OVIRT_ISCSI_ENABLED" != "y" ]; then
- reboot
- else
- /sbin/reboot
- fi
+ reboot
fi
stop_log
exit $rc
diff --git a/scripts/ovirt-config-storage b/scripts/ovirt-config-storage
index c6473a6..93b94b0 100755
--- a/scripts/ovirt-config-storage
+++ b/scripts/ovirt-config-storage
@@ -703,8 +703,6 @@ perform_partitioning()
log "Creating volume group"
vgcreate /dev/HostVG "${partpv}"
- mkdir -p /dev/disk/by-label
-
if [ "$SWAP_SIZE" -gt 0 ]; then
log "Creating swap partition"
lvcreate --name Swap --size ${SWAP_SIZE}M /dev/HostVG
diff --git a/scripts/ovirt-functions b/scripts/ovirt-functions
index b98e31a..482441a 100644
--- a/scripts/ovirt-functions
+++ b/scripts/ovirt-functions
@@ -283,7 +283,7 @@ mount_liveos() {
return 0
fi
mkdir -p /liveos
- mount /dev/disk/by-label/Root /liveos
+ mount LABEL=Root /liveos
}
# mount config partition
@@ -326,7 +326,7 @@ mount_boot() {
return 0
fi
mkdir -p /boot
- mount /dev/disk/by-label/Boot /boot
+ mount LABEL=Root /boot
}
# stop any service which keeps /var/log busy
# keep the list of services
@@ -709,12 +709,14 @@ lvremove() {
# cleanup before reboot
reboot() {
cd /
- # setup new Root if update is prepared
- if [ -e "/dev/disk/by-label/RootUpdate" ]; then
- root_update_dev=$(readlink -f /dev/disk/by-label/RootUpdate)
- root_dev=$(readlink -f /dev/disk/by-label/Root)
- e2label $root_dev RootBackup
- e2label $root_update_dev Root
+ if [ "$OVIRT_ISCSI_ENABLED" = "yes" ]; then
+ # setup new Root if update is prepared
+ if findfs LABEL=RootUpdate 2>&1 >/dev/null; then
+ root_update_dev=$(findfs LABEL=RootUpdate 2>/dev/null)
+ root_dev=$(findfs LABEL=Root 2>/dev/null)
+ e2label $root_dev RootBackup
+ e2label $root_update_dev Root
+ fi
fi
# run post-install hooks
# e.g. to avoid reboot loops using Cobbler PXE only once
--
1.6.6.1
Mike Burns
2010-Mar-23 23:04 UTC
[Ovirt-devel] [PATCH node][RFC] Remove dependencies on /dev/disk/by-label entries
This depends on the previous patch for uninstall fixes. There is a known issue with these that we aren't able to unmount the Logging volume. I hope to have this debugged and fixed soon. On Tue, 2010-03-23 at 19:00 -0400, Mike Burns wrote:> Use findfs LABEL=ABC and mount LABEL=ABC instead. > > Signed-off-by: Mike Burns <mburns at redhat.com> > --- > scripts/ovirt-config-boot | 29 ++++++++++++++++------------- > scripts/ovirt-config-storage | 2 -- > scripts/ovirt-functions | 18 ++++++++++-------- > 3 files changed, 26 insertions(+), 23 deletions(-) > > diff --git a/scripts/ovirt-config-boot b/scripts/ovirt-config-boot > index ac43daa..b1fd469 100755 > --- a/scripts/ovirt-config-boot > +++ b/scripts/ovirt-config-boot > @@ -29,14 +29,21 @@ ovirt_boot_setup() { > local disk2 > local partN=-1 > log "installing the image." > - if [ -h /dev/disk/by-label/Boot ]; then > + local found_boot=false > + if findfs LABEL=Boot 2>&1 >/dev/null ; then > + found_boot=true > + grub_dev_label=Boot > + elif findfs LABEL=Root 2>&1 >/dev/null ; then > + found_boot=true > + grub_dev_label=Root > + fi > + if $found_boot; then > mount_boot > mountpoint /boot > if [ $? -ne 0 ] ; then > log "Boot partition not available" > return 1 > fi > - grub_dev_label="Boot" > # Grab OVIRT_ISCSI VARIABLES from boot partition for upgrading > # file created only if OVIRT_ISCSI_ENABLED=y > if [ -f /boot/ovirt ]; then > @@ -50,7 +57,7 @@ ovirt_boot_setup() { > fi > > # check that /boot mounted ok and find partition number for GRUB > - get_part_info $(readlink -f /dev/disk/by-label/$grub_dev_label disk partN > + get_part_info $(readlink -f $(findfs LABEL=$grub_dev_label 2>/dev/null) disk partN > rc=$? > if [ $rc -ne 0 -o $partN -lt 0 ]; then > log "unable to determine Root partition" > @@ -67,11 +74,11 @@ ovirt_boot_setup() { > > # prepare Root partition update > candidate> - if [ -e /dev/disk/by-label/RootBackup ]; then > + if findfs LABEL=RootBackup 2>&1 >/dev/null; then > candidate=RootBackup > - elif [ -e /dev/disk/by-label/RootUpdate ]; then > + elif findfs LABEL=RootUpdate 2>&1 >/dev/null; then > candidate=RootUpdate > - elif [ -e /dev/disk/by-label/RootNew ]; then > + elif findfs LABEL=RootNew 2>&1 >/dev/null; then > candidate=RootNew > fi > if [ -z "$candidate" ]; then > @@ -80,7 +87,7 @@ ovirt_boot_setup() { > umount /liveos > rc=0 > else > - candidate_dev=$(readlink -f /dev/disk/by-label/$candidate) > + candidate_dev=$(findfs LABEL=$candidate 2>/dev/null) > e2label $candidate_dev RootNew > rc=$? > fi > @@ -90,7 +97,7 @@ ovirt_boot_setup() { > return $rc > fi > > - mount $candidate_dev /liveos > + mount $candidate_dev /liveos/ > > rm -rf /liveos/LiveOS > mkdir -p /liveos/LiveOS > @@ -212,11 +219,7 @@ if [ $rc -eq 0 -a "$doreboot" = "yes" ]; then > ovirt_store_firstboot_config > stop_log > > - if [ "$OVIRT_ISCSI_ENABLED" != "y" ]; then > - reboot > - else > - /sbin/reboot > - fi > + reboot > fi > stop_log > exit $rc > diff --git a/scripts/ovirt-config-storage b/scripts/ovirt-config-storage > index c6473a6..93b94b0 100755 > --- a/scripts/ovirt-config-storage > +++ b/scripts/ovirt-config-storage > @@ -703,8 +703,6 @@ perform_partitioning() > log "Creating volume group" > vgcreate /dev/HostVG "${partpv}" > > - mkdir -p /dev/disk/by-label > - > if [ "$SWAP_SIZE" -gt 0 ]; then > log "Creating swap partition" > lvcreate --name Swap --size ${SWAP_SIZE}M /dev/HostVG > diff --git a/scripts/ovirt-functions b/scripts/ovirt-functions > index b98e31a..482441a 100644 > --- a/scripts/ovirt-functions > +++ b/scripts/ovirt-functions > @@ -283,7 +283,7 @@ mount_liveos() { > return 0 > fi > mkdir -p /liveos > - mount /dev/disk/by-label/Root /liveos > + mount LABEL=Root /liveos > } > > # mount config partition > @@ -326,7 +326,7 @@ mount_boot() { > return 0 > fi > mkdir -p /boot > - mount /dev/disk/by-label/Boot /boot > + mount LABEL=Root /boot > } > # stop any service which keeps /var/log busy > # keep the list of services > @@ -709,12 +709,14 @@ lvremove() { > # cleanup before reboot > reboot() { > cd / > - # setup new Root if update is prepared > - if [ -e "/dev/disk/by-label/RootUpdate" ]; then > - root_update_dev=$(readlink -f /dev/disk/by-label/RootUpdate) > - root_dev=$(readlink -f /dev/disk/by-label/Root) > - e2label $root_dev RootBackup > - e2label $root_update_dev Root > + if [ "$OVIRT_ISCSI_ENABLED" = "yes" ]; then > + # setup new Root if update is prepared > + if findfs LABEL=RootUpdate 2>&1 >/dev/null; then > + root_update_dev=$(findfs LABEL=RootUpdate 2>/dev/null) > + root_dev=$(findfs LABEL=Root 2>/dev/null) > + e2label $root_dev RootBackup > + e2label $root_update_dev Root > + fi > fi > # run post-install hooks > # e.g. to avoid reboot loops using Cobbler PXE only once
Apparently Analagous Threads
- [PATCH node][REPOST 1/2] Fix uninstall to detect and cleanup correct partitions
- [PATCH node] split root filesystems out of HostVG and onto their own partitions
- [PATCH node] add install.py
- [PATCH node] iscsi remote root basework This lays most of the groundwork for iscsi installation and configuration. At this time configuring iscsi is disabled due to multiple issues with dependent pieces.
- [PATCH node] Handle space in storage wwid