Staram się stworzyć system tworzenia kopii zapasowych od podstaw, przy użyciu najbardziej podstawowych narzędzi dostępnych w openSUSE 11.3 (w tym przypadku: bash, fdisk, tar i grub legacy)
Oto przepływ pracy dla moich skryptów:
backup.sh:
- (Uruchom z systemu zewnętrznego, np. LiveCD)
- stwórz skrypt fdisk ($ fscript) z wyjścia fdisk -l [działa]
- zamontuj partycje z systemu fstab [działa]
- tar najważniejsze rzeczy w pliku.tgz [działa]
restore.sh:
- (Uruchom z systemu zewnętrznego, np. LiveCD)
- uruchom fdisk $ dest <$ fscript, aby przywrócić partycjonowanie [działa]
- sformatuj i zamontuj partycje z systemu fstab [nie działa]
- wypakuj z pliku.tgz [działa podczas ręcznego montażu]
- przywróć grub [nie działa]
Ostatnio zauważyłem, że openSUSE (choć jestem pewien, że nie ma to nic wspólnego z dystrybucją) ma inne wyjście w / etc / fstab i /boot/grub/menu.lst, a dokładniej nazwa partycji to na przykład „ / dev / disk / by-id / numbers-brandname-morenumbers-part2 ”zamiast„ / dev / sda2 ”- ale w zasadzie jest to proste dowiązanie symboliczne.
Moje pytania na ten temat:
- jaki jest sens takich dowiązań symbolicznych, zwłaszcza jeśli przywracamy na innym dysku?
- czy istnieje sposób, aby w czysty sposób zapobiec tworzeniu tych dowiązań symbolicznych i zamiast tego używać wszędzie „prawdziwego” / dev / sdx?
jeśli poprzednie nie, czy znasz sposób na zastąpienie tych dowiązań symbolicznych w locie w pliku tekstowym? Próbowałem tego skryptu, ale działa tylko wtedy, gdy plik zaczyna się od opisu dowiązania symbolicznego (przypadek fstab, nie menu.lst):
### search and replace /dev/disk/by-id/... to /dev/sdx while read oldVolume rest; do # get first element, ignore rest of line if [[ "$oldVolume" =~ ^/dev/disk/by-id/.*(-part[0-9]*$)? ]]; then newVolume=$(readlink $oldVolume) # replace pointer by pointee, returns "../../sdx" echo /dev/${newVolume##*/} $rest >> TMP # format to "/dev/sdx", write line else echo $oldVolume $rest >> TMP # nothing to do fi done < $file mv -f TMP $file # save changes
Miałem problem ze znalezieniem rozwiązania tego problemu w Google, więc miałem nadzieję, że niektórzy członkowie tutaj mogą mi pomóc.
Dziękuję Ci.