Я пытаюсь создать простую систему резервного копирования с использованием самых основных инструментов, доступных в openSUSE 11.3 (в данном случае: bash, fdisk, tar & grub legacy)
Вот рабочий процесс для моих сценариев:
backup.sh:
- (Запуск из внешней системы, например LiveCD)
- сделать скрипт fdisk ($ fscript) из вывода fdisk -l [works]
- смонтировать разделы из системного fstab [works]
- tar важные вещи в file.tgz [работает]
restore.sh:
- (Запуск из внешней системы, например LiveCD)
- запустить fdisk $ dest <$ fscript для восстановления разметки [works]
- отформатировать и смонтировать разделы из системного fstab [fails]
- Извлечь из файла file.tgz [работает при монтировании вручную]
- восстановить grub [не удается]
Недавно я заметил, что openSUSE (хотя я уверен, что он не имеет ничего общего с дистрибутивом) имеет разные выходные данные в /etc /fstab и /boot/grub/menu.lst, точнее, например, имя раздела " /dev /disk /by-id /numbers-brandname-morenumbers-part2 "вместо" /dev /sda2 "- но в основном это простая символическая ссылка.
Мои вопросы по этому поводу:
- какой смысл в таких символических ссылках, особенно если мы восстанавливаем на другом диске?
- Есть ли способ, чтобы полностью предотвратить создание этих символических ссылок и везде вместо этого использовать "true" /dev /sdx?
если предыдущее - нет, знаете ли вы способ замены этих символических ссылок на лету в текстовом файле? Я попробовал этот скрипт, но он работает, только если файл начинается с описания символической ссылки (случай fstab, а не 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
У меня были проблемы с поиском решения этой проблемы в Google, поэтому я надеялся, что некоторые из присутствующих здесь смогут мне помочь.
Спасибо.