Ich habe ein Bash-Skript erstellt, das in Ubuntu funktionierte, aber jetzt funktioniert es nicht in Manjaro. Es schlägt bei dieser Methode fehl:
#!/bin/bash
dev_block="/dev/sdb"
createPartitions(){
echo "Creating Partitions on "$dev_block"..."
sfdisk $dev_block -uS <<-EOF
start=63, size=409600, type=c, bootable
start=411648, type=af
EOF
}
createPartitions
Ich erhalte diese Ausgabe ...
Creating Partitions on /dev/sdb...
Checking that no-one is using this disk right now ... OK
Disk /dev/sdb: 28.84 GiB, 30966546432 bytes, 60481536 sectors
Disk model: USB FLASH DRIVE
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EB88C926-F304-6D45-82C8-0BAC5E73A2CB
Old situation:
Device Start End Sectors Size Type
/dev/sdb1 2048 411585 409538 200M EFI System
/dev/sdb2 413633 60481502 60067870 28.6G Apple HFS/HFS+
>>> Created a new GPT disklabel (GUID: 0EBA642D-3CB5-8841-A150-D18AC387D65F).
/dev/sdb1: Failed to add #1 partition: Invalid argument
Leaving.
Ich habe auch versucht, das EOF nach hinten zu verschieben, sodass davor kein Tab steht.
createPartitions(){
echo "Creating Partitions on "$dev_block"..."
sfdisk $dev_block -uS <<-EOF
start=63, size=409600, type=c, bootable
start=411648, type=af
EOF
}
Ich habe nachgesehen und es gibt keinen Tabulator oder Leerraum NACH dem schließenden EOF. Aber auch in Ubuntu musste ich das schließende EOF nicht zurückverschieben.
Wie debugge ich das? Vielleicht verhält sich sfdisk in Arch anders?
Prost.
Antwort1
Ich habe die Antwort gefunden ... während ich den Code in Manjaro testete, hatte ich diese notwendige Methode auskommentiert, die die Partitionen und Dateisysteme auf dem Laufwerk vor jedem Ausführen des Befehls sfdisk löscht:
wipeFilesystems(){
echo "Wiping filesystems on "$dev_block"..."
sfdisk --delete $dev_block
wipefs --all $dev_block
}