Skip to content

Instantly share code, notes, and snippets.

@jkramarz
Created September 2, 2013 13:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jkramarz/6412757 to your computer and use it in GitHub Desktop.
Save jkramarz/6412757 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
from=sda
to=sdb
function copyGPT() {
sudo sgdisk -R /dev/$to /dev/$from
sudo sgdisk -G /dev/$to
}
function getNonEmptyPvs() {
sudo pvs | tail -n +2 | awk '{ if ($5 != $6){ print $1 }}' | sed 's#/dev/##g'
}
function getPartitionInArray() {
cat /proc/mdstat | grep $1 | rev | cut -d' ' -f1 | rev | cut -d'[' -f 1 | sed "s/$from/$to/"
}
function addToArray(){
for arrrrrr in md{0..2} $(getNonEmptyPvs); do
sudo mdadm --manage /dev/$arrrrrr --add /dev/$(getPartitionInArray $arrrrrr)
done
}
function updateGrub(){
sudo grub-mkdevicemap
sudo update-grub
sudo grub-install /dev/$to
sudo grub-install /dev/md0
}
if ([ $# -ne 2 ] || [ ! -b /dev/$1 ] || [ ! -b /dev/$2 ]); then
echo "Usage: $0 from to"
exit 1
else
set -x
from=$1
to=$2
copyGPT
addToArray
updateGrub
fi
@rafaltrojniak
Copy link

Trzeba koniecznie wrzucić jakąś weryfikację czy sda=>sdb czy sdb=>sda. Skutki błędu mogą być opłakane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment