Сценарий Python не имеет стандартного вывода при запуске через i3blocks

Перемещение разделов будет существенной проблемой в нижних регионах. Проблема здесь в том, как происходит загрузка . Я подозреваю, что это область SDB5 512 мегабайт. Также, вероятно, есть какой-то загрузочный код, который говорит системе запускаться с sdb5.

Но это означает, что что-то в этом загрузочном блоке "знает", что установка Linux находится в sdb6, так что вы не смеете это менять .

Самый простой выход (два USB-устройства)

Получите новый USB-ключ и подключите оба. Загрузитесь с линукса. Отформатируйте новый USB-ключ таким же образом, но с «лучшими» разделами. Затем скопируйте данные из старого ключа в новый ключ. Убедитесь, что это работает. Готово!

Что можно делать (только с одним USB-устройством)

Как вы, наверное, знаете, в Linux есть точки монтирования! Вы можете смешивать и сочетать те ! Так:

  • СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИИ ВСЕГО ВАЖНОГО

  • загрузиться в Linux и войти в систему как root в одиночном (режиме «восстановления» )

  • уничтожить содержимое раздела sdb1, переформатировав его как ext4:

    mkfs.ext4 /dev/sdb1

  • теперь проверьте вашу установку Linux и посмотрите, что занимает место:

    du -sk / *2>/dev/null | сортировать -п

В моей тестовой системе у меня, например, (после нескольких секунд сканирования диска):

...smaller fry removed...
12220   /run
13320   /sbin
18992   /etc
125244  /boot
873108  /home
873324  /lib
1154900 /opt
1537488 /root
4648100 /usr
15088048        /var

Поэтому я в основном использую свою систему для /var. Идеально. Я перееду /var.

  • смонтировать только что отформатированный sdb1 в /mnt

    монтирование /dev/sdb1 /mnt

  • скопируйте «/var» в «/mnt» (, поэтому убедитесь, что у вас установлен rsync, прежде чем запускать)

    rsync -a /var /mnt

  • теперь (это то, что должно быть сделано в "одиночном режиме", загрузке в текстовом режиме, с остановленными всеми службами;скорее всего, вы даже не сможете сделать это иначе)

    mv /var /oldvar #Чтобы при необходимости можно было вернуться назад, восстановив oldvar в var

  • воссоздать новый /var

    mkdir/var

  • Проверьте разрешения на oldvar и реплицируйте их на новый /var

  • добавить строку с sdb1 в список точек монтирования в /etc/fstab:

    echo "/dev/sdb1 /var ext4 auto 0 2" >> /etc/fstab

Теперь при каждой загрузке раздел sdb1 будет связан с /var, и вы сможете хранить на нем до 17 ГБ данных.

Если вы сейчас перезагрузитесь, все должно работать как прежде, вы увидите заполненный /var и вообще никакого свободного места на sdb6, так как оно занято oldvar. Тщательно проверьте, все ли работает . Когда вы будете уверены, удалите каталог oldvar и все его подкаталоги.

ПРИМЕЧАНИЕ.:В моем примере используется /var. Вместо этого вы можете увидеть, что вам нужно переместиться / домой. То же самое. Или вы можете пойти глубже, чем на один уровень, и посмотреть, что занимает место внутри /var:

du -sk /var/ *2> /dev/null | сортировать -п

и в моем случае я вижу, что /var/www занимает 90% места. Таким образом, мне не нужно перемещать весь каталог /var, я могу выполнить описанные выше шаги, используя «/var/www», и при этом получить 90% преимуществ. Кроме того, теперь мне не нужно входить в одиночный режим или перезагружаться, потому что в моей системе /var/www наверняка используется только HTTP-сервером Apache, который я могу остановить и перезапустить без перезагрузки (, в то время как /var/log, /var/run, /var/mail и т. д. могут использоваться и требуют одиночного режима):

apache2ctl stop
rsync -a /var/www /mnt
mv /var/www /var/oldwww
mkdir /var/www
# Set up the same ownership and permissions of the old /var/www
chown www-data:users /var/www  
chmod 775 /var/www
# Compare the two ls lines
ls -la /var | grep www
# If ownership and pemissions are OK go on
echo "/dev/sdb1 /var/www   ext4   auto  0  2" >> /etc/fstab
# Free up sdb1 from mnt
umount /mnt
# Check whether the automount from fstab works
mount /var/www
# Now everything is as before, www is there and useable, it's just on sdb1.
apache2ctl start
# Now verify everything works again. IF it works, oldwww is useless.
rm -rf /var/oldwww # kill the original www

(Я также мог бы создать прямо на новом /var/www, смонтировать его и выполнить rsync oldww с www, вообще не задействуя /mnt ).

0
20.01.2021, 19:54
1 ответ

Благодаря комментарию муру я нашел ответ здесь:

Если я изменю print("test")на print("test", flush=True), выходной буфер сбрасывается сразу после печати, что решает мою проблему.

0
18.03.2021, 22:36

Теги

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