Как заменить корневой диск в Debian? [закрыто]

Вот способ сделать это на чистом awk, используя getline:

awk '
  /% BEGIN/ {
    s = 1;
  }

  s == 1 {
    b = b == "" ? $0 : b ORS $0
  }

  /% END/ {
    while ((getline repl < "foobar.txt") > 0) {
      tmp = b;
      sub(/foo bar/, repl, tmp);
      print tmp;
    }
    b = "";
    s = 0;
    next;
  }

  s == 0 {
    print;
  }' input

С помощью GNU awk вы можете сделать замену без временного использования – используя gensub:

gawk '
  /% BEGIN/ {
    s = 1;
  }

  s == 1 {
    b = b == "" ? $0 : b ORS $0
  }

  /% END/ {
    while ((getline repl < "foobar.txt") > 0) {
      print gensub(/foo bar/, repl, 1, b);
    }
    b = "";
    s = 0;
    next;
  }

  s == 0 {
    print;
  }' input

Тестирование :

$ gawk '
>   /% BEGIN/ {s = 1;}
>   s == 1 {b = b == "" ? $0 : b ORS $0}
>   /% END/ {while ((getline repl < "foobar.txt") > 0) {print gensub(/foo bar/, repl, 1, b);} s = 0; next;}
>   s == 0 {print}' input
some text …
% BEGIN
blabla
2 3
blabla
blabla
% END
% BEGIN
blabla
8 9 
blabla
blabla
% END
% BEGIN
blabla
1 2
blabla
blabla
% END
some text …
0
18.01.2017, 19:34
1 ответ

Следующее делает некоторые предположения:

  • Все команды запускался как root, когда это возможно
  • Вам нужна файловая система ext4
  • Вы слабо знакомы на базовом уровне со всеми выполняемыми командами
  • Вы НЕ загружаетесь с RAID-устройства

Итак, начнем.

  1. Физически установить новый диск в компьютер и подключиться к доступному порту, оставив старый диск на прежнем месте.
  2. Загрузите компьютер в старую ОС.
  3. Подготовьте и смонтируйте новый диск; сначала определите новый диск

fdisk -l

  1. Разделите новый диск

fdisk / dev / (newdisk)

 Сделайте раздел основным разделом с типом файловой системы типа «83». 
 
  1. Создать файловую систему

mkfs.ext4 / dev / (новый раздел)

  1. Смонтировать новую файловую систему

mkdir / mnt / (newpartitionmountpoint)

mount / dev / (newpartition) / mnt / (newpartitionmountpoint)

  1. Копировать диск:

/ sbin / init 1 (переход в однопользовательский режим)

rsync -avxHAX / / mnt / (newpartitionmountpoint)

startx

  1. Обновить FSTAB на newdisk

blkid (обратите внимание на UUID нового раздел)

(выбранный редактор) / mnt / (newpartitionmountpoint) / etc / fstab

  Заменить существующий UUID / в FSTAB на UUID нового диска 
 
  1. Настроить grub и установить на новый загрузочный диск загрузчик:

grub-mkconfig

update-grub

grub-install / dev / (newdisk)

  1. Скопируйте grub.cfg со старого диска на новый

cp -ax /boot/grub/grub.cfg /mnt/(newpartitionmountpoint)/boot/grub/grub.cfg

  1. Откройте grub.cfg на новом диске и замените все UUID новыми диск

(редактор по выбору) /mnt/(newpartitionmountpoint)/boot/grub/grub.cfg

Замените все старые UUID на UUID нового диска

  1. Завершите работу компьютера

Завершение работы

  1. Физически переместите новый диск в расположение 1-го диска и удалите старый диск

    14. Запустите компьютер, и grub должен представить:

ошибка: такого устройства нет: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Спасение GRUB>

  1. Вручную загрузить новую ОС из grub; сначала определите диск и раздел с загрузочными файлами

ls [для определения вашего диска и параметров раздела]

ls (hdx, p) / [чтобы определить, в каком разделе находится папка / boot]

  1. Затем вы может загрузить меню загрузки вручную с диска и раздела, которые вы нашли выше. Обычно это (hd0, msdos1).

set prefix = "(hdx, p) / boot / grub"

set root = "(hdx, p)"

insmod normal

normal

  1. Войти в ОС на новом диске
  2. Снова настройте grub

fdisk -l (обратите внимание на разработчика newdisk)

grub-mkconfig

update-grub

grub-install / dev / newdisk

И все готово!

3
28.01.2020, 02:25

Теги

Похожие вопросы