LINUX.ORG.RU

Скрипт для ремонтных работ.


0

0

Собственно нужен init скрипт для хозяйственно-ремонтных работ в системе. Скрипт находится в initramfs. Пока следующее(по аналогии с гентушным руководством):

# Mount the /proc and /sys filesystems.
mount -t proc none /proc
mount -t sysfs none /sys

#create uuid and label
mini_udev

# Mount the root filesystem.
uuidlabel_root || rescue_shell

# Boot the real thing.
mount -n -o remount,rw /mnt/root
exec switch_root /mnt/root /bin/bash
Вот собственно и всё. Чего хотелось бы: поддержка русских шрифтов, автоматическое монтирование содержимого fstab, чтобы не было ругани про отсутствие xterm, всякий другой полезный стаф который по вашему усмотрения был-бы полезен.

И ещё поясните насчёт - «exec switch_root /mnt/root /bin/bash». Не совсем понимаю как это работает и зачем тут exec.

★★
Ответ на: комментарий от nnz

>Во-первых, нафига тебе их разделять?
Ну так чтобы воткнуть mount -a

Насчёт:
exec switch_root /mnt/root /bin/bash
Может кто-нибудь написать, в какой последовательности и с какими аргументами это выполняется. Для меня это диковиная связка.

Booster ★★
() автор топика
Ответ на: комментарий от nnz

>Во-вторых, почитай man pivot_root, там это рассмотрено.
Спасибо, но пока не выходит, паникует зараза.

Booster ★★
() автор топика
Ответ на: комментарий от Booster

>Ну так чтобы воткнуть mount -a

Если switch_root позволяет передавать аргументы вызываемой команде, можно сделать так:
exec switch_root /mnt/root /bin/bash -c '/bin/mount -a; exec /bin/bash'

nnz ★★★★
()
Ответ на: комментарий от Booster

> Может кто-нибудь написать, в какой последовательности и с какими аргументами это выполняется.

exec switch_root /mnt/root /bin/bash

gorilych ★★
()
Ответ на: комментарий от gorilych

Понятно, значит exec запускает switch_root, который уже свою очередь запускает /bin/bash. То есть текущий init замещается switch_root-ом, который в свою очередь замещается /bin/bash?

Booster ★★
() автор топика
Ответ на: комментарий от Booster

кстати, я так понял, тебе после этого нужно автоматом какие то действия выполнить.

запихай их в .bashrc:

pid=$$
if [ $pid == 1 ]; then
  action1
  action2
  action3
fi
gorilych ★★
()
Ответ на: комментарий от gorilych

>запихай их в .bashrc:
Тоже вариант, но хотелось-бы разобраться как это сделать в том же скрипте.

Booster ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.