Problem att boota vid nyinstallation med raid-volym

Frågor om LiveCDn samt installation och uppgradering av Ubuntu och dess varianter
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Jag har precis nyinstallerat Ubuntu 18.04 på en desktop, där jag har en raid-array vid sidan av min huvud-hårddisk. Dvs systemet plus home ligger på en HD, och så har jag en Raid5-array med 3 hårddiskar bredvid. Jag installerade systemet utan att raid-arrayen var inkopplad.

Sen har jag kopplat in dem, och använt Webmin för att sätta upp dem som en raid5-array, och synka dem. Och satt upp en monteringspunkt och automount vid boot.

Men: det funkar inte att boota då - jag hamnar i det där "Emergency"läget. Går jag in i /etc/fstab och kommenterar ut raid-arrayn, så funkar det igen. Så nåt är fel med det.

Hur ska jag göra för att kunna ha en raid5-array som monteras automatiskt vid boot?

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Verkar nästan som om den försöker boota från raid-arrayen istället, när den finns tillgänglig. Prova med att starta upp datorn, gå ut i en shell och kör:

Kod: Markera allt

grub-install /dev/sda
Nu gissar jag här att din hårddisk heter "sda", men det får du rätta till om den heter något annat. Märk väl att du måste ange hela disken och inte någon partition.

Jag vet inte om det hjälper, men det kan ju vara något att börja med för att se om det hjälper...
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Tack för svar! Nu är jag på resa och har inte tillgång till desktopen, men jag tror inte att den försöker boota från fel device - den startar grub och visar splashscreen en bra stund, och först senare går den i "emergency mode". Verkar också lite spooky om den har grub på raid-arrayen eftersom den inte var tillgänglig vid installation, utan jag lade till den senare.

Eller tänker jag fel?

En tanke jag hade var om det ska vara några speciella parametrar i fstab för att kunna starta en raid-array, om det var där det strulade. Har haft raid-array tidigare i min desktop, men nog bara Raid1 då, det här är Raid5, om det nu gör skillnad.

Jag ska testa ditt förslag i alla fall när jag kommer hem (fredag).

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Raid1 och Raid5 är visserligen helt olika, men det borde inte spela någon roll i det här fallet. Största skillnaden är att Raid1 enbart innebär att en annan disk speglas till raid-arrayen, så att om den disken skulle krascha, så har man en komplett kopia som säkerhet. Raid5 däremot innebär även striping och sådant, så att data delas upp mellan diskarna av prestandaskäl och att (raid) diskarna gemensamt uppträder såsom om de vore en enda disk. Men som sagt, detta borde inte ha någon betydelse här.

Att raid-arrayen inte fanns tillgänglig vid installationen gör inte att det vore så jättemärkligt om grub skulle finnas på den. Visst borde det inte finnas där, men det enda som krävs för att grub ska finnas där är ju ett felektigt kommando, ett script eller något sådant som felaktigt kört kommandot grub-install. Detta är dock isåfall egentligen inget problem, eftersom det enda som krävs för att rätta till det, är att du kör en grub-install för rätt disk.

En sak som också kan ha betydelse är om det är en hårdvaru- eller mjukvaru-raid..?

För att komma vidare skulle du kunna lägga till "nofail" i fältet för "options" i /etc/fstab för raid-arrayen. Detta innebär att den fortsätter booten, även om det skulle uppstå något problem med monteringen av raid-arrayen. Att du hamnar i "emergency-läget" skulle kunna bero på att den misslyckas med monteringen av någon anledning...
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Kanon, tack! Things to do on Friday :)

Jag är alltså bra på att använda Raid, men inte mer, egentligen. Så det är mycket jag inte fattar. Det måste i alla fall vara mjukvaru-raid - jag har satt upp den med webmin/mdadm i ubuntu, och inte justerat nåt i Bios. Det är tre helt vanliga hårddiskar, inga andra prylar inblandade. Sprillans ny dator, MSI-moderkort så kanske borde jag ställa om nåt i Bios med?

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Eftersom du använt mdadm så är det alltså en mjukvaru-raid. Detta innebär alltså att all raid-funktionalitet hanteras av operativsystemet, diskarna är alltså så sett inte "medvetna" om att de ingår i en raid.

Det borde inte vara något som du behöver ställa om i BIOS, eftersom BIOS bara kan se diskarna enskilt och inte har någon aning om att de ingår i en raid heller.

En orsak till problemen kan alltså vara det att du inte har med nofail i /etc/fstab, för det betyder att om raiden inte har synkat ihop ordentligt, så åker systemet kanske på en timeout när den försöker montera den.

Hur ser det t.ex ut om du bootar upp utan att ha raiden igång och sedan kopplar in den och tittar på den med:

Kod: Markera allt

cat /proc/mdstat
?
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Om du vill kolla om grub finns på raiden, så finns det två olika sätt att göra det på.

1) med "file"

Kod: Markera allt

file -s /dev/sdb
2) eller med dd:

Kod: Markera allt

dd bs=512 count=1 if=/dev/sdb 2>/dev/null | strings | grep -i grub
Här har jag angivit namnet sdb i båda fallen, men det får du justera utifrån vad din raid heter.

Nu går kommandot så som jag skrivit det direkt mot hårdvarudisken och inte mot raiden, så om du vill så kan du ju ange t.ex "/dev/md1" eller vad din raid nu heter. Det varierar lite mellan olika system.

Du kan också kollla de olika partitionerna med båda de kommandona och ingen partition ska ha någon grub installerad, endast en disk ska ha det.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av johanre »

Om du kör kommandot:

Kod: Markera allt

lsblk
Så kommer du kunna se vilken ordning OS:et uppfattar att diskarna sitter i och därmed vilken disk grub bör ligga på.
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Kanon, fler saker att kolla!!

Kanske lite dum fråga: hur bootar jag upp utan att raiden är igång, och sen drar igång den? Menar du att starta utan SATA-kablar i diskarna och sen hot-plugg i dem...?

Har aldrig gjort det. Rör inte hårdvaran medan maskinen är igång av rädsla att förstöra nåt (spikar och sånt).

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

johanre skrev:Om du kör kommandot:

Kod: Markera allt

lsblk
Så kommer du kunna se vilken ordning OS:et uppfattar att diskarna sitter i och därmed vilken disk grub bör ligga på.
Listar inte "lsblk" bara dem i bokstavsordning? Visst brukar "sda" alltid vara samma disk och ofta även "sdb", om man har dem anslutna via SATA alltså. Men om man har diskar anslutna via USB, så tycker jag att de kan hamna lite hur som helst, beroende på vad som varit anslutet vid booten (därför som det är mycket bättre att ange UUID i fstab).

Det hela bygger väl helt enkelt på hur snabbt diskarna svarar, den som svarar först blir "sda", nästa blir "sdb" och den därefter "sdc" etc...?
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

MagnusL skrev:Kanske lite dum fråga: hur bootar jag upp utan att raiden är igång, och sen drar igång den? Menar du att starta utan SATA-kablar i diskarna och sen hot-plugg i dem...?
Att starta utan SATA-kablarna inkopplade och sedan göra en hot-plugin, skulle jag nog avråda från. Visserligen borde det nog kanske, ungefär, för det mesta, oftast, nästan alltid sådär funka... men låter inte så bra ändå.....

Men skulle du göra det så hade du fått se just det med att diskarna får en sd[a-z] beteckning, helt i följd med när de pluggas in...

Men lägger du till "nofail" i fstab, så måste diskarna inte vara färdiga och monterbara när den bootar, för den fortsätter ändå. Ett annat alternativ är ju att också lägga till "noauto", för då försöker systemet överhuvudtaget inte montera dem när det bootar. Däremot kan du lätt montera dem med "mount -a" i efterhand, när systemet redan är uppe...

Om 4:e fältet i fstab nu innehåller "defaults" så blir det alltså "defaults,nofail" eller "defaults,noauto". Givetvis kan du ange "defaults,nofail,noauto" också, men det spelar nog inte så stor roll i det här fallet, eftersom den då inte kommer att försöka montera dem vid boot, enda skillnaden blir väl kanske att "mount -a" inte kan hänga sig....
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Jag hackade förresten ihop ett litet "bra att ha script" igårkväll, som ger in lista över var grub och övriga bootloaders finns, samt vilka partitioner som är uppsatta för att kunna boota.

Spara som "lsgrub" och kör t.ex med "lsgrub -flwa" eller "lsgrub -dlwa", eller vad du nu vill. Se vad som finns genom att titta i scriptet, eller genom att köra "lsgrub -h" eller "lsgrub --help"...

Kod: Markera allt

#! /bin/bash
#  Magnus Ewert
#
#file -s $DISK
#file -s /dev/sdb1 | grep -i bootloader | wc -l
#dd bs=512 count=1 if=$DISK 2>/dev/null | strings | grep -i grub | wc -l
#
USER=$(whoami)
if [[ $USER != "root" ]]; then
	echo
	echo "-This script has to be run as root or via sudo"
	echo
	exit
fi
#
function check_boot {
	PART=$1
	TEMP=$(mktemp -d -p /tmp mnt-XXX)
	FS=$(blkid -o value -s TYPE $PART)
	LB=$(blkid -o value -s LABEL $PART)
	MNT=$(mount | grep $PART | awk '{ print $3 }')
	if [[ $FS == "ntfs" ]]; then
		if [[ -z $MNT ]]; then
			mount -t $FS $PART $TEMP
			MNT=$TEMP
		fi
		BOOT1a=$(ls -l $MNT/bootmgr 2> /dev/null)
		BOOT1b=$(ls -l $MNT/BOOTMGR 2> /dev/null)
		if [[ ! -z $BOOT1a && ! -z $BOOT1b ]]; then
			if [[ $QUIET == false ]]; then
				BOOT="Windows"
			fi
		else
			if [[ $QUIET == false ]]; then
				BOOT="Windows"
				echo "-  has a Windows bootmgr"
			fi
		fi
		if [[ $MNT == $TEMP ]]; then
			umount $TEMP
		fi
	elif [[ $FS == "ext2" || $FS == "ext3" || $FS == "ext4" || $FS == "btrfs" || $FS == "reiser" ]]; then
		if [[ -z $MNT ]]; then
			mount -t $FS $PART $TEMP
			MNT=$TEMP
		fi
		GRUB1a=$(ls -l $MNT/boot/grub/menu.lst 2> /dev/null)
		GRUB1b=$(ls -l $MNT/boot/menu.lst 2> /dev/null)
		GRUB2a=$(ls -l $MNT/boot/grub/grub.cfg 2> /dev/null)
		GRUB2b=$(ls -l $MNT/boot/grub2/grub.cfg 2> /dev/null)
		GRUB2c=$(ls -l $MNT/boot/grub.cfg 2> /dev/null)
		if [[ ! -z $GRUB2a || ! -z $GRUB2b || ! -z $GRUB2c ]]; then
			if [[ $QUIET == false ]]; then
				BOOT="Grub2"
				echo "-  has a Grub2 configuration"
			fi
		elif [[ ! -z $GRUB1a || ! -z $GRUB1b ]]; then
			if [[ $QUIET == false ]]; then
				BOOT="Grub1"
				echo "-  has a Grub1 configuration"
			fi
		else
			if [[ $QUIET == false ]]; then
				BOOT=""
				echo
			fi
		fi
		if [[ $MNT == $TEMP ]]; then
			umount $TEMP
		fi
	elif [[ $FS == "iso9660" ]]; then
		if [[ -z $MNT ]]; then
			mount -t $FS $PART $TEMP
			MNT=$TEMP
		fi
		SYSLIN=$(ls -l $MNT/syslinux/memdisk 2> /dev/null)
		if [[ ! -z $SYSLIN ]]; then
			if [[ $QUIET == false ]]; then
				BOOT="Syslinux"
				echo "has a Syslinux (CD) configuration"
			fi
		fi
		if [[ $MNT == $TEMP ]]; then
			umount $TEMP
		fi
	else
		echo
	fi
	if [[ $QUIET == false ]]; then
		:
		#echo $FS
	fi
	rmdir $TEMP
}
function show_part_f {
	PART=$1
	GRUBP=$(file -s $PART | grep -i bootloader | grep -i "grand unified" | wc -l)
	WINBP=$(file -s $PART | grep -i bootloader | grep -i windows | wc -l)
	if [[ $GRUBP -gt 0 && $WINBP -gt 0 ]]; then
		if [[ $QUIET == false ]]; then
			echo "    STRANGE!! $PART seems to have both Grub and Windows bootloader"
		fi
	elif [[ $GRUBP -gt 0 ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo -n "    $PART contains Grub bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "     "
				check_boot $PART
			else
				echo
			fi
		fi
	elif [[ $WINBP -gt 0 && $WIND == true ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo -n "    $PART contains Windows bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "  "
				check_boot $PART
			else
				echo
			fi
		fi
	elif [[ $ALL == true ]]; then
		if [[ $QUIET == false ]]; then
			echo -n "    $PART has no bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "            "
				check_boot $PART
			else
				echo
			fi
		fi
	fi 
}
function show_part_d {
	PART=$1
	GRUBP=$(dd bs=512 count=1 if=$PART 2>/dev/null | strings | grep -i grub | wc -l)
	WINBP=$(dd bs=512 count=1 if=$PART 2>/dev/null | strings | grep -i bootmgr | wc -l)
	if [[ $GRUBP -gt 0 && $WINBP -gt 0 ]]; then
		if [[ $QUIET == false ]]; then
			echo "    STRANGE!! $PART seems to have both Grub and Windows bootloader"
		fi
	elif [[ $GRUBP -gt 0 ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo -n "    $PART contains Grub bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "     "
				check_boot $PART
			else
				echo
			fi
		fi
	elif [[ $WINBP -gt 0 && $WIND == true ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo -n "    $PART contains Windows bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "  "
				check_boot $PART
			else
				echo
			fi
		fi
	elif [[ $ALL == true ]]; then
		if [[ $QUIET == false ]]; then
			echo -n "    $PART has no bootloader"
			if [[ $BOOTC == true ]]; then
				echo -n "            "
				check_boot $PART
			else
				echo
			fi
		fi
	fi
}
function show_disk_f {
	DISK=$1
	GRUBP=$(file -s $DISK | grep -i bootloader | grep -i "grand unified" | wc -l)
	WINBP=$(file -s $DISK | grep -i bootloader | grep -i windows | wc -l)
	if [[ $GRUBP -gt 0 && $WINBP -gt 0 ]]; then
		if [[ $QUIET == false ]]; then
			echo "  STRANGE!! $DISK seems to have both Grub and Windows bootloader"
		fi
	elif [[ $GRUBP -gt 0 ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo "  $DISK contains Grub bootloader"
		fi
	elif [[ $WINBP -gt 0 && $WIND == true ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo "  $DISK contains Windows bootloader"
		fi
	else
		if [[ $QUIET == false ]]; then
			echo "  $DISK has no bootloader"
		fi
	fi
	PARTS=$(ls $DISK[$RANGE])
	if [[ $LIST == true ]]; then
		for PART in $PARTS; do
			show_part_f $PART
		done
	fi
	if [[ $QUIET == false ]]; then
		echo
	fi
}
function show_disk_d {
	DISK=$1
	GRUBP=$(file -s $DISK | grep -i bootloader | grep -i "grand unified" | wc -l)
	WINBP=$(file -s $DISK | grep -i bootloader | grep -i windows | wc -l)
	if [[ $GRUBP -gt 0 && $WINBP -gt 0 ]]; then
		if [[ $QUIET == false ]]; then
			echo "  STRANGE!! $DISK seems to have both Grub and Windows bootloader"
		fi
	elif [[ $GRUBP -gt 0 ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo "  $DISK contains Grub bootloader"
		fi
	elif [[ $WINBP -gt 0 && $WIND == true ]]; then
		let FOUND_LOADERS+=1
		if [[ $QUIET == false ]]; then
			echo "  $DISK contains Windows bootloader"
		fi
	else
		if [[ $QUIET == false ]]; then
			echo "  $DISK has no bootloader"
		fi
	fi
	PARTS=$(ls $DISK[$RANGE])
	if [[ $LIST == true ]]; then
		for PART in $PARTS; do
			show_part_d $PART
		done
	fi
	if [[ $QUIET == false ]]; then
		echo
	fi
}
function show_all_f {
	for DISK in $ALL_DISKS; do
		show_disk_f $DISK
	done
}
function show_all_d {
	for DISK in $ALL_DISKS; do
		show_disk_d $DISK
	done
}
#####################################################################################################
if [[ $QUIET == false ]]; then
	echo
fi
ALL=false
DUMP=false
FILE=false
BOOTC=false
HELP=false
LIST=false
NOCHAR=false
QUIET=false
WIND=false
RANGE=0-9
UNIT=sd
PARAMS=`getopt -a -o abdfhlnqu:w --long all,boot,dd,file,help,list,nochar,quiet,unit:,wind,windows -n 'grub' -- "$@"`
if [[ $? != 0 ]]; then
	echo "-Getopt failed, status=$?"
	exit 255
fi
eval set -- "$PARAMS"
while true; do
	case $1 in
		-a|--all)
			ALL=true
			shift
			;;
		-b|--boot)
			BOOTC=true
			shift
			;;
		-d|--dd)
			DUMP=true
			shift
			;;
		-f|--file)
			FILE=true
			shift
			;;
		-h|--help)
			HELP=true
			shift
			;;
		-l|--list)
			LIST=true
			shift
			;;
		-n|--nochar)
			NOCHAR=true
			shift
			;;
		-q|--quiet)
			QUIET=true
			shift
			;;
		-u|--unit)
			shift
			UNIT=$1
			shift
			;;
		-w|--wind|--windows)
			WIND=true
			shift
			;;
		--)
			shift
			break
			;;
		*)
			shift
			;;
	esac
done
#
if [[ $DUMP == true && $FILE == true ]]; then
	echo "-Both -d and -f where specified, select one of them"
	echo
	exit 255
elif [[ $DUMP == false && $FILE == false ]]; then
	FILE=true
fi
#
if [[ $HELP == true ]]; then
cat << EOD

grub [-d][-f][-h] [device]

      Check where grub exists

      -a|--all    -  Print info even about partitions without bootloader.
      -d|--dd     -  Check by using "dd"
      -f|--file   -  Check by using "file" (default).
      -g|--grub   -  Check for boot configuration on each partition.
      -h|--help   -  Print this help.
      -l|--list   -  List all partitions.
      -n|--nochar -  Do not add an extra character to the device name.
      -q|--quiet  -  Quiet, perform the check and exit with the number of found bootloaders.
      -u|--unit   -  Change unit from the default /dev/sd
      -w|--wind   -  Show even windows bootloaders.

      device      -  Name of the disk or partition to be checked, for example "/dev/sda" or "/dev/sda1".

                     If no name is given, all disks are checked.

		     If -l is specified all partitions of a specific disk is also checked. However, if a
		     parttion is specified as "device", nothing else but that partition is checked.

EOD
fi
#
CHECK=$1
CHECK_PART=false
CHECK_DISK=false
CHECK_ALL=false
PART=$(echo $CHECK | egrep -c "([$RANGE])")
if [[ $PART -gt 0 ]]; then
	CHECK_PART=true
elif [[ ! -z $CHECK ]]; then
	CHECK_DISK=true
else
	CHECK_ALL=true
fi
#
FOUND_LOADERS=0
if [[ $NOCHAR == false ]]; then
	ALL_DISKS=$(ls /dev/$UNIT[a-z][$RANGE] | sed 's/[0-9]//g' | sort -u)
	ALL_PARTS=$(ls /dev/$UNIT[a-z][$RANGE])
else
	ALL_DISKS=$(ls /dev/$UNIT[$RANGE] | sed 's/[0-9]//g' | sort -u)
	ALL_PARTS=$(ls /dev/$UNIT[$RANGE])
fi
if [[ $QUIET == false ]]; then
	echo
fi
if [[ $FILE == true ]]; then
	if [[ $CHECK_PART == true ]]; then
		show_part_f $CHECK
	elif [[ $CHECK_DISK == true ]]; then
		show_disk_f $CHECK
	else
		show_all_f
	fi
elif [[ $DUMP == true ]]; then
	if [[ $CHECK_PART == true ]]; then
		show_part_d $CHECK
	elif [[ $CHECK_DISK == true ]]; then
		show_disk_d $CHECK
	else
		show_all_d
	fi
fi
exit $FOUND_LOADERS
Senast redigerad av 1 Osprey, redigerad totalt 29 gånger.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!
Nu är jag hemma igen.

Tyvärr säger ditt script att jag inte har nån bootloader nånstans:
./lsgrub -dlwa

/dev/sda has no bootloader
/dev/sda1 has no bootloader
/dev/sda2 has no bootloader
/dev/sda3 has no bootloader
/dev/sda4 has no bootloader

/dev/sde has no bootloader
/dev/sde1 has no bootloader


Vilket känns lite scary :) file -s /dev/sdX säger att det finns boot-sektor på båda de hårdiskar som nu är inkopplade.

Men - ytterligare en detalj: det är inte bara så att raidvolymen inte kan monteras. Jag har nu kommenterat ut raden i fstab, så den är inte monterad. Men när jag kör webmin, som i sin tur använder mdadm (men jag gillar guis), så hittar den ingen raid-volym alls. Så jag kan inte montera den förrän jag skapat den, vilket innebär synka, vilket tar ca 6 timmar (minst).

Borde den inte i alla fall hitta raid-volymen? Känns som om jag saknar nåt i systemet som kan hantera raid, helt enkelt - kan det vara så?

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

MagnusL skrev:Tyvärr säger ditt script att jag inte har nån bootloader nånstans:
./lsgrub -dlwa

/dev/sda has no bootloader
/dev/sda1 has no bootloader
/dev/sda2 has no bootloader
/dev/sda3 has no bootloader
/dev/sda4 has no bootloader

/dev/sde has no bootloader
/dev/sde1 has no bootloader


Vilket känns lite scary :) file -s /dev/sdX säger att det finns boot-sektor på båda de hårdiskar som nu är inkopplade.
När du kör scriptet med "-d" så använder det "dd" för att försöka hitta grub, men om du kör "-f" istället, så använder det ju just "file -s" och borde ge samma resultat som du får fram när du kör "file -s" direkt. Prova t.ex med "./lsgrub -flwab", där b:et innebär att den även ser efter vad som ligger på själva partitionerna.

Man tycker ju att "file -s" och "dd" borde ge samma resultat, men jag har en disk också, där "dd" hittar bootblocket, men "file -s" inte gör det. Enda egentliga skillnaden mellan det sätt som "file -s" respektive "dd" söker på, är att "dd" enbart söker efter grub, medan "file -s" söker en bootloader och även hittar Windows bootloader och (kanske) BSD.

Så om du av någon anledning har en Windows bootloader (eller något annat konstigt), så kommer "lsgrub" inte att hitta något om du kör med "-dlwa". Så prova istället med "-flwab"...

När det gäller just "-d" (dd), så kan du ju köra:

Kod: Markera allt

dd bs=512 count=1 if=/dev/sda | strings
...direkt och se vad den hittar och kanske samma för /dev/sde.
MagnusL skrev:Men - ytterligare en detalj: det är inte bara så att raidvolymen inte kan monteras. Jag har nu kommenterat ut raden i fstab, så den är inte monterad. Men när jag kör webmin, som i sin tur använder mdadm (men jag gillar guis), så hittar den ingen raid-volym alls. Så jag kan inte montera den förrän jag skapat den, vilket innebär synka, vilket tar ca 6 timmar (minst).

Borde den inte i alla fall hitta raid-volymen? Känns som om jag saknar nåt i systemet som kan hantera raid, helt enkelt - kan det vara så?
Om raid-volymen överhuvudtaget existerar kan du ju titta på den med:

Kod: Markera allt

cat /proc/mdstat
...och om volymen finns där, så ska den ju även finnas som "/dev/md0", eller "/dev/md/0" har jag för mig.

Raid-volymen är skapad redan innan den är synkad, men då är det ju bara en hårdvarudisk, plus delar av en annan som ingår. Hur bra den går att montera då vet jag inte exakt, men det finns nog viss risk för att monteringen åker på en timeout...
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Ja nu finns min raidvolym, men det är för jag har satt den till att skapas/synkas via Webmin. Så cat /proc/medstat visar den i alla fall. Får testa nästa gång jag bootar och se vad som händer. Men visst är det väl konstigt att den inte dyker upp när jag bootat? Som du säger, den ska ju finnas. Är den inte ordentligt skapad när jag gör det med webmin?

Ditt script: oavsett om jag kör d eller l, så hittar den inget. XXX has not bootloader, är det lite sorgliga meddelandet :) Men kör jag med b, så får jag också felmeddelande om mktemp och rmdir. Vad är det det försöker göra där?

/dev/sde has no bootloader
/dev/sde1 has no bootloader mktemp: misslyckades att skapa en katalog via mallen ”/mnt-XXX”: Åtkomst nekas

rmdir: argument saknas
Försök med ”rmdir --help” för mer information.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

MagnusL skrev:Ja nu finns min raidvolym, men det är för jag har satt den till att skapas/synkas via Webmin. Så cat /proc/medstat visar den i alla fall. Får testa nästa gång jag bootar och se vad som händer. Men visst är det väl konstigt att den inte dyker upp när jag bootat? Som du säger, den ska ju finnas. Är den inte ordentligt skapad när jag gör det med webmin?
Jo, den borde vara precis lika bra skapad med "webmin" som med "mdadm", eftersom webmin med största sannolikhet använder just mdadm...

Men när du kör "cat /proc/mdstat", så kolla så att det på den raden där det står antalet block också står "[UU]" eller något motsvarande och inte "[_U]", eller "[U_]"...
MagnusL skrev:Ditt script: oavsett om jag kör d eller l, så hittar den inget. XXX has not bootloader, är det lite sorgliga meddelandet :) Men kör jag med b, så får jag också felmeddelande om mktemp och rmdir. Vad är det det försöker göra där?
Ahhhh... jo, du måste nog köra scriptet som root eller med sudo.

Tänkte inte på det, för jag kör som root hela tiden... ;)

Det den gör när den kör mktemp och rmdir är att med mktemp så skapar den en temporär monteringspunkt, där den monterar partitionen för att kunna se vilka boot-saker som finns på den. Och med rmdir så städar den bort den monteringspunkten efteråt... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

När jag kör /proc/mdstat står det [UU_].....?

Och intressant nog fortfarande inga bootloaders? Men jag har alltså en efi-partitoion, på sda1. Spelar det roll?

Magnus
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

MagnusL skrev:När jag kör /proc/mdstat står det [UU_].....?
Det där betyder att din raid består av 3 diskar, men att den sista inte har synkat in ännu. Vilka diskarna är, kan du se på raden ovanför och mdadm kallar dem för "1", "2" och "3". På samma rad som "[UU_]" står på, så ser du vilken disk som står för varje "U" eller "_"...
MagnusL skrev:Och intressant nog fortfarande inga bootloaders? Men jag har alltså en efi-partitoion, på sda1. Spelar det roll?
Vet faktiskt inte om det spelar någon roll...

Kör en:
dd bs=512 count=1 if=/dev/sda | strings
...och se vad som syns. Det borde stå "grub" i någon form där ändå tycker jag, även om det är efi, nu blev jag nyfiken.... ;)


[EDIT]
Om man ska vara petig, så behöver du egentligen inte dumpa hela blocket (512 bytes), utan det räcker om du dumpar de första 446 bytesen. Det är de som innehåller själva boot-informationen. Det som följer därefter är partitionstabellen och lite annat.

Att dumpa hela blocket är bara för att jag är van vid det av backuporsaker... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av Osprey »

Har förresten ändrat lite i scriptet nu, så att det kontrollerar att man är root eller kör via sudo. Dessutom har jag ändrat så att monteringspunkten (den som skapas med mktemp) numera hamnar i "/tmp".

Scriptet en bit upp, är uppdaterat... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
MagnusL
Inlägg: 16
Blev medlem: 19 aug 2006, 12:33

Re: Problem att boota vid nyinstallation med raid-volym

Inlägg av MagnusL »

Hej!

Spännande det här. Jag hittar fortfarande ingen grub. Men datorn startar ju, och jag tror jag sett en grub-meny (men minnet kan spela spratt).

Kör jag dd så:

magnus@vista7:~$ sudo dd bs=512 count=1 if=/dev/sda | strings | grep -i grub
1+0 poster in
1+0 poster ut
512 byte kopierade, 5,845e-05 s, 8,8 MB/s

Samma på sda - sde

Kör jag ditt nya skript som sudo:

magnus@vista7:~$ sudo ./lsgrub

/dev/sda has no bootloader

/dev/sde has no bootloader

/dev/sdg has no bootloader

/dev/sdh has no bootloader



The mystery thickens.... :)

Jag roade mig med att installera och köra Boot-repair (https://help.ubuntu.com/community/Boot-Repair) - och skapa en rapport, men inte ändra nåt. Rapporten börjar med:


=> No boot loader is installed in the MBR of /dev/sda.
=> No boot loader is installed in the MBR of /dev/sde.
=> Windows 7/8/2012 is installed in the MBR of /dev/sdg.
=> No boot loader is installed in the MBR of /dev/sdh.

sda1: __________________________________________________________________________

File system: vfat
Boot sector type: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /EFI/ubuntu/grub.cfg /EFI/BOOT/fbx64.efi
/EFI/ubuntu/fwupx64.efi /EFI/ubuntu/grubx64.efi
/EFI/ubuntu/mmx64.efi /EFI/ubuntu/shimx64.efi



Säger det dig nåt? Jag kan läsa men knappt tolka det.

Magnus
Skriv svar

Återgå till "Installation och uppgradering"