Лично меня уже раздражает это обилие синего.
Как по мне куда приятнее наблюдать теплые и нейтральные оттенки, но это мое личное имхо.
Кстати, недавно я выбирал себе Todo-чекалку и одиним из вариантов был Any.do, по возможностям мне он понравился больше других, но отказался я от него как раз из-за цветов интерфейса: голубым по белому! — блин, как по мне это тихий ужас...
Cкрипты определенно получились у вас довольно классные и свою задачу выполняют, спасибо.
Но в вашем случае я бы использовал OpenNebula.
В отличие от OpenStack эта платформа очень легковестна, и ее с легкостью можно использовать к для больших датацентров, так и всего на одном компьютере. При этом она сохраняет всю свою гибкость и многофункциальность.
Среди функций есть так же свой Marketplace с популярными образами операционных систем и автоматическое конфигурирование виртуальных машин посредством, так называемой, контекстулизации. Все машины создаются как и у вас из базового образа.
В вашем случае для ее работы вам хватит того же самого libvirt с lvm или zfs.
Ссылку нашел гуглом за 5 минут, в ней инструкция на 99% подходящая и в ней описана вся сложная часть. После того как сделал pivot_root, оказываешься в новой системе, старую sda3 потом можно размонтировать из /oldroot, потом пару манипуляций с fdisk и из sda3 получаются 2 новых раздела. sda3 замонтировать и скопировать туда все обратно из нового корня, на sda4 залить файлы сайта и добавить его в фстаб. Перезагрузка.
Ваша ошибка началась с фразы
"Что бы появился, надо перезагрузиться", естественно перезагрузка в данном случае не обязательна. Соответсвенно вся история с losetup является излишней.
mkfs.xfs -f /dev/loop0p1 зачем /boot форматировать? loop0p3 наверное должен был быть.
Спасибо за подсказку, перезагрузку я понятное дело не делал, но дело даже не в этом, а в том, что я не уделил должного внимания этой команде:
mount --make-rprivate / # necessary for pivot_root to work
Я не попробовал после нее сделать pivot_root, а сразу воспользовался switch_root
Если ее не выполнить, то попытка запуска pivot_root приведет к следющей ошибке:
pivot_root: failed to change root from ' /ramdisk': Invalid argument
И нигде, кроме данного ответа на stackexchange, про это не написано, даже в man pivot_root нет ни слова...
Ну да ладно, после того как я сделал switch_root, рут изменился и все пошло бы по плану, но я не понимаю почему возник Kernel Panic, ведь на тот момент система работала уже в tmpfs.
Получается что /dev/sda3 был по прежнему куда-то смонтирован и занят ядром?
mkfs.xfs -f /dev/loop0p1 зачем /boot форматировать? loop0p3 наверное должен был быть.
По поводу этого: некоторые команды я записывал потом и банально опечатался, конечно же там /dev/loop0p3
Так же хочу поблагодарить авторов конкурса, хоть я его и провалил. Было очень занятно, правда, спасибо!
И хочу отметить что консоль сервера у меня ужасно глючила и тормозила (пробовал firefox и chromium под Linux)
Захожу в контрольную панель, узнаю что IP тачки 194.87.147.194
ssh root@194.87.147.194 # без результата
ping 194.87.147.194 # без результата
Подключаюсь через консоль, логинюсь
ping 8.8.8.8 # без результата
ip addr
Вижу, что установлен ip-адрес 194.87.144.194, а не 194.87.147.194
Ок, что за ось то?
cat /etc/*-release
Ubuntu 16.04, ладно, проверим интерфейсы:
cat /etc/network/interfaces
Ага, вот оно, поправим:
sed -i /etc/network/interfaces 's/.144./.147./g'
Cразу получаю ошибку о недоступности записи, оказывается "/" смонтирован только для чтения
Исправляю ситуацию:
mount -o remount,rw /
теперь, надо бы записать изменения в fstab:
vim /etc/fstab # нет такого файла
Ладно, нет так нет, значит создадим:
cat /proc/mounts | grep /dev/sda >> /etc/fstab
Вернемся, к сетевым настройкам. Cнова меняю адрес:
sed -i /etc/network/interfaces 's/.144./.147./g'
systemctl networking restart
Пробуем интернет
ping 8.8.8.8 # без результата
ping 194.87.147.1 # без результата
arp
ip route
...
Здесь я понимаю, что допустил первую ошибку, я не посмотрел на то, что сеть там /22, а не /24
Исправляю ситуацию:
vim /etc/network/interfaces # Правлю адрес шлюза и сети обратно на 144
Пробую заново:
ping 8.8.8.8 # есть пинг
Ага, отлично, пробую залогиниться снова:
ssh root@194.87.147.194 # без результата
ping 194.87.147.194 # есть пинг
Фаервол? Смотрю логи:
jornalctl -f #вижу сообщения от ufw
Минута гугления, и команда для ufw готова:
ufw allow ssh
Снова захожу:
ssh root@194.87.147.194 # Permission denied!
Пароль правильный, значит root логин запрещен, разрешаем (знаю не красиво, но ведь конкурс же)
sudo sed -i 's/prohibit-password/yes/' /etc/ssh/sshd_config
Захожу:
ssh root@194.87.147.194 # ура, я в тачке!
Теперь диски:
fdisk -l # /dev/sda - 3 раздела; /dev/sda3 - это корень занимает 18G, swap раздел на 1G (точно не помню)
df -h # корень весит всего 1.8G,
free -h # 2 гига оперативки
Ага, объема /swap + ram должно хватить что бы скопировать туда корень
mkdir /ramroot
mount -n -t tmpfs -o size=2G none /ramroot
cd / # (containing the root filesystem contents)
find / -depth -xdev -print | cpio -pd --quiet /ramroot
cd /ramroot
mkdir oldroot
pivot_root . oldroot # Синтаксическая ошибка
Как долго я ни гуглил, так и не нашел решения этой ошибки
Я решил пойти другим способом: использовать switch_root вместо pivot_root
Для этого, нужно перенести proc, sysfs, и dev в наш новый рут:
for i in /dev /run /sys /proc; do mount --move $i /ramdisk$i ; done # получаю ошибки
Снова гуглю нахожу решение:
mount --make-private /
mount --make-private /proc/
Повторяю:
umount /ramdisk/*
for i in /dev /run /sys /proc; do mount --move $i /ramdisk$i ; done
parted /dev/sda # Удаляем 3 пртишен, создаем два новых, сохраняем
Получаю варнинг, что диск уже используется в системе, и ядро не узнает о том, что он изменился
Ладно, соглашаюсь.
ls /dev/sda* # как и предполагалось четвертого партишена нет
Что бы появился, надо перезагрущится, но понятное дело, что перезагружаться мы не можем, у нас система в памяти висит!
И что же это, конец? Ан нет.
Чуть-чуть пораскинув мозгами мне в голову приходит гениальная идея я вспоминаю о том как некогда я маунтил образы дисков из виртуальных машин прямо в систему, с разметкой отдельных партишенов, пробуем повторить, тоже самое для /dev/sda:
losetup /dev/loop0 /dev/sda
partx -a /dev/loop0
ls /dev/loop0* # Появились все четыре новых партиции, ура победа!
Ок, где провести грань "стороние утилиты"? — да, я увидел команду find в вашем условии и позволил себе отсупить от него. Но вы же уже получили ответ, что find — это такая же часть системы как и bash, рассматривать их отдельно бессмысленно. Не понимаю, чего еще вы хотите...
Вот кстати интересно, почему некоторые жесткие диски при сгибании сыпятся как на КДПВ, а другие нормально сгибаются?
Как по мне — так лучше чужие :)
А вы уверены что gmail не сканирует содержимое электронной почты своих пользователей и не передает полученные данные ФБР и АНБ?
Есть предложения куда валить?
Видать исполняют судебное предписание по антимонопольному делу Яндекса против Google.
Хабр не настолько радикален :)
Долой границы, Ура!
Лично меня уже раздражает это обилие синего.
Как по мне куда приятнее наблюдать теплые и нейтральные оттенки, но это мое личное имхо.
Кстати, недавно я выбирал себе Todo-чекалку и одиним из вариантов был Any.do, по возможностям мне он понравился больше других, но отказался я от него как раз из-за цветов интерфейса: голубым по белому! — блин, как по мне это тихий ужас...
Согласен, довольно эпичный персонаж, чего стоит одно только его обращение, на тему как удалить McAfee:
На тему шариковой ручки, очень понравилась
В данном случае вы можете использовать параметр
KERNEL=Для начала вам потребуется вычислить физический порт токена.
А затем настроить на него udev.
Вперед, составлять подробные карты пещер и других мест где не ловит GPS!
Cкрипты определенно получились у вас довольно классные и свою задачу выполняют, спасибо.
Но в вашем случае я бы использовал OpenNebula.
В отличие от OpenStack эта платформа очень легковестна, и ее с легкостью можно использовать к для больших датацентров, так и всего на одном компьютере. При этом она сохраняет всю свою гибкость и многофункциальность.
Среди функций есть так же свой Marketplace с популярными образами операционных систем и автоматическое конфигурирование виртуальных машин посредством, так называемой, контекстулизации. Все машины создаются как и у вас из базового образа.
В вашем случае для ее работы вам хватит того же самого libvirt с lvm или zfs.
Поздравляю и я. :)
Интересно посмотреть что из себя будет представлять проект и сама ось еще через 25 лет...
Хабраюзер non7top отписал мне на почту:
Спасибо за подсказку, перезагрузку я понятное дело не делал, но дело даже не в этом, а в том, что я не уделил должного внимания этой команде:
Я не попробовал после нее сделать
pivot_root, а сразу воспользовалсяswitch_rootЕсли ее не выполнить, то попытка запуска
pivot_rootприведет к следющей ошибке:И нигде, кроме данного ответа на stackexchange, про это не написано, даже в
man pivot_rootнет ни слова...Ну да ладно, после того как я сделал
switch_root, рут изменился и все пошло бы по плану, но я не понимаю почему возник Kernel Panic, ведь на тот момент система работала уже в tmpfs.Получается что
/dev/sda3был по прежнему куда-то смонтирован и занят ядром?По поводу этого: некоторые команды я записывал потом и банально опечатался, конечно же там
/dev/loop0p3А сколько человек успешно закончило конкурс?
Я так и делал :)
Так же хочу поблагодарить авторов конкурса, хоть я его и провалил. Было очень занятно, правда, спасибо!
И хочу отметить что консоль сервера у меня ужасно глючила и тормозила (пробовал firefox и chromium под Linux)
Ладно, вот мой вариант произошедшего:
Как я запорол конкурс от RUVDS
Захожу в контрольную панель, узнаю что IP тачки 194.87.147.194
Подключаюсь через консоль, логинюсь
Вижу, что установлен ip-адрес 194.87.144.194, а не 194.87.147.194
Ок, что за ось то?
Ubuntu 16.04, ладно, проверим интерфейсы:
Ага, вот оно, поправим:
Cразу получаю ошибку о недоступности записи, оказывается "/" смонтирован только для чтения
Исправляю ситуацию:
теперь, надо бы записать изменения в fstab:
Ладно, нет так нет, значит создадим:
Вернемся, к сетевым настройкам. Cнова меняю адрес:
Пробуем интернет
Здесь я понимаю, что допустил первую ошибку, я не посмотрел на то, что сеть там /22, а не /24
Исправляю ситуацию:
Пробую заново:
Ага, отлично, пробую залогиниться снова:
Фаервол? Смотрю логи:
Минута гугления, и команда для ufw готова:
Снова захожу:
Пароль правильный, значит root логин запрещен, разрешаем (знаю не красиво, но ведь конкурс же)
Захожу:
Теперь диски:
Ага, объема /swap + ram должно хватить что бы скопировать туда корень
Как долго я ни гуглил, так и не нашел решения этой ошибки
Я решил пойти другим способом: использовать switch_root вместо pivot_root
Для этого, нужно перенести proc, sysfs, и dev в наш новый рут:
Снова гуглю нахожу решение:
Повторяю:
Вроде все ок, логинимся в наш новый рут:
Круто, работает!
Ну теперь дело за малым, разметим диск снова:
Получаю варнинг, что диск уже используется в системе, и ядро не узнает о том, что он изменился
Ладно, соглашаюсь.
Что бы появился, надо перезагрущится, но понятное дело, что перезагружаться мы не можем, у нас система в памяти висит!
И что же это, конец? Ан нет.
Чуть-чуть пораскинув мозгами мне в голову приходит гениальная идея я вспоминаю о том как некогда я маунтил образы дисков из виртуальных машин прямо в систему, с разметкой отдельных партишенов, пробуем повторить, тоже самое для /dev/sda:
Дальше по накатаной:
Тут ssh-соединение рвется.
В консоли тачки Kernel Panic
Ребут, понятное дело, выкидывает в initramfs, на этом я закончил.
ps: Если кто укажет на мои ошибки и на то, почему так произошло, буду очень благодарен и отправлю + в карму!
Ок, где провести грань "стороние утилиты"? — да, я увидел команду
findв вашем условии и позволил себе отсупить от него. Но вы же уже получили ответ, что find — это такая же часть системы как и bash, рассматривать их отдельно бессмысленно. Не понимаю, чего еще вы хотите...