Установка / загрузка на раздел fat32

Наконец, с помощью этой помощи получен двойной контроль \n, работающий в sed. Немного глотка:

sed -Ei ':a;N;$!ba;s/^(#ServerRoot[^\n]*)\n\n/\1\nServerName localhost\n\n/' apache2.conf

И awk, который делает то же самое (дольше, но легче понять IMO). Логика и sponge объясняются в последнем разделе.

awk '{print}/^#ServerRoot/{getline; if($0=="") print "ServerName localhost"; print}' apache2.conf | sponge apache2.conf

Редактировать: sed не так сложно, как я думал изначально. Вы просто хотите сопоставить и добавить (команда a); вам не нужно заменять. Я тестировал следующие действия:

sed -i '/^#ServerRoot/a ServerName localhost' apache2.conf

Вы можете быть более конкретным в своем матче, если хотите, и я оставлю awk ниже ради потомства.

[d6 ]

Редактирование довольно тривиально с awk, но для того, чтобы записать обратно в тот же файл, нам нужен либо временный файл-посредник, либо sponge (из пакета moreutils). Я покажу оба метода.

awk '{print}/^#ServerRoot/{print "ServerName localhost"}' apache2.conf > tmp
mv tmp apache2.conf

Или

awk '{print}/^#ServerRoot/{print "ServerName localhost"}' apache2.conf | sponge apache2.conf

awk просто печатает каждую найденную строку, но в случае соответствия для ^#ServerName затем записывает вашу строку ServerName. Я считаю, что этот вид обработки намного проще читать, чем произвольная «замена» с помощью sed.

1
задан 20 July 2017 в 18:54

3 ответа

Из того, что вы сказали, что хотите сделать, измените порядок загрузки по умолчанию, лучшим механизмом для этого является перенумеровать / переименовать файлы в /etc/grub.d, чтобы сначала загрузить (Windows?) загрузку (30_os-prober например, до 06_os-prober). Затем update-grub перепишет grub.cfg так, как вы хотите, и сохранит этот порядок для каждого обновления. Редактировать grub.cfg напрямую не рекомендуется, потому что он часто перезаписывается обновлениями ядра.

Теперь вы можете установить grub в файловую систему FAT, но не во время установки Ubuntu. Я сделал это однажды, когда я уничтожил Windows MBR на диске и не имел возможности переустановить его, поэтому я использовал grub для загрузчика, помещая загрузочный каталог на небольшие инструменты FAT или раздел восстановления Windows. Обратите внимание, что я не пытался выполнить двойную загрузку с этой настройкой, поэтому мне не нужно было беспокоиться о обновлениях grub.cfg.

Не путайте, как установка Ubuntu устанавливает ограничение на то, что grub может сделать, если запустить вручную. Установите Ubuntu в свой ext4, примите установку grub по умолчанию (MBR и файлы grub в / boot / grub). Запустите Ubuntu и установите FAT в / mnt (при условии, что вы описываете FAT во втором разделе):

sudo mount -tvfat /dev/sda2 /mnt 

Создайте каталог с именем boot

sudo mkdir /mnt/boot 

Вручную установите grub в раздел FAT:

sudo grub-install --boot-directory=/mnt

Ваша установка grub теперь отключает файлы на вашем разделе FAT, и вы можете редактировать их из Windows. Следите за любым «мусором», как возврат каретки. Редакторы Windows могут помещать в ваш файл grub.cfg (Ubuntu и большинство unixes просто используют линию в качестве терминатора строк). Однако обновления ядер приведут к тому, что новая информация о grub будет помещена в /boot/grub/grub.cfg, поэтому вам нужно будет отредактировать FAT grub.cfg или скопировать новый файл grub.cfg в FAT и отредактировать его снова ( или новое ядро ​​не появится в загрузочном меню).

2
ответ дан 22 May 2018 в 20:22

Из того, что вы сказали, что хотите сделать, измените порядок загрузки по умолчанию, лучшим механизмом для этого является перенумеровать / переименовать файлы в /etc/grub.d, чтобы сначала загрузить (Windows?) загрузку (30_os-prober например, до 06_os-prober). Затем update-grub перепишет grub.cfg так, как вы хотите, и сохранит этот порядок для каждого обновления. Редактировать grub.cfg напрямую не рекомендуется, потому что он часто перезаписывается обновлениями ядра.

Теперь вы можете установить grub в файловую систему FAT, но не во время установки Ubuntu. Я сделал это однажды, когда я уничтожил Windows MBR на диске и не имел возможности переустановить его, поэтому я использовал grub для загрузчика, помещая загрузочный каталог на небольшие инструменты FAT или раздел восстановления Windows. Обратите внимание, что я не пытался выполнить двойную загрузку с этой настройкой, поэтому мне не нужно было беспокоиться о обновлениях grub.cfg.

Не путайте, как установка Ubuntu устанавливает ограничение на то, что grub может сделать, если запустить вручную. Установите Ubuntu в свой ext4, примите установку grub по умолчанию (MBR и файлы grub в / boot / grub). Запустите Ubuntu и установите FAT в / mnt (при условии, что вы описываете FAT во втором разделе):

sudo mount -tvfat /dev/sda2 /mnt

Создайте каталог с именем boot

sudo mkdir /mnt/boot

Вручную установите grub в раздел FAT:

sudo grub-install --boot-directory=/mnt

Ваша установка grub теперь отключает файлы на вашем разделе FAT, и вы можете редактировать их из Windows. Следите за любым «мусором», как возврат каретки. Редакторы Windows могут помещать в ваш файл grub.cfg (Ubuntu и большинство unixes просто используют линию в качестве терминатора строк). Однако обновления ядер приведут к тому, что новая информация о grub будет помещена в /boot/grub/grub.cfg, поэтому вам нужно будет отредактировать FAT grub.cfg или скопировать новый файл grub.cfg в FAT и отредактировать его снова ( или новое ядро ​​не появится в загрузочном меню).

2
ответ дан 18 July 2018 в 09:58

Из того, что вы сказали, что хотите сделать, измените порядок загрузки по умолчанию, лучшим механизмом для этого является перенумеровать / переименовать файлы в /etc/grub.d, чтобы сначала загрузить (Windows?) загрузку (30_os-prober например, до 06_os-prober). Затем update-grub перепишет grub.cfg так, как вы хотите, и сохранит этот порядок для каждого обновления. Редактировать grub.cfg напрямую не рекомендуется, потому что он часто перезаписывается обновлениями ядра.

Теперь вы можете установить grub в файловую систему FAT, но не во время установки Ubuntu. Я сделал это однажды, когда я уничтожил Windows MBR на диске и не имел возможности переустановить его, поэтому я использовал grub для загрузчика, помещая загрузочный каталог на небольшие инструменты FAT или раздел восстановления Windows. Обратите внимание, что я не пытался выполнить двойную загрузку с этой настройкой, поэтому мне не нужно было беспокоиться о обновлениях grub.cfg.

Не путайте, как установка Ubuntu устанавливает ограничение на то, что grub может сделать, если запустить вручную. Установите Ubuntu в свой ext4, примите установку grub по умолчанию (MBR и файлы grub в / boot / grub). Запустите Ubuntu и установите FAT в / mnt (при условии, что вы описываете FAT во втором разделе):

sudo mount -tvfat /dev/sda2 /mnt

Создайте каталог с именем boot

sudo mkdir /mnt/boot

Вручную установите grub в раздел FAT:

sudo grub-install --boot-directory=/mnt

Ваша установка grub теперь отключает файлы на вашем разделе FAT, и вы можете редактировать их из Windows. Следите за любым «мусором», как возврат каретки. Редакторы Windows могут помещать в ваш файл grub.cfg (Ubuntu и большинство unixes просто используют линию в качестве терминатора строк). Однако обновления ядер приведут к тому, что новая информация о grub будет помещена в /boot/grub/grub.cfg, поэтому вам нужно будет отредактировать FAT grub.cfg или скопировать новый файл grub.cfg в FAT и отредактировать его снова ( или новое ядро ​​не появится в загрузочном меню).

2
ответ дан 24 July 2018 в 19:29

Другие вопросы по тегам:

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