Можно ли сохранить данные в процедуре Raid1, увеличивающейся до Raid5?

Мое предложение — это не фактическая функция Cinnamon, а способ добиться такого поведения в среде Cinnamon :с помощью небольшой утилиты devilspie2, версияv0.42(из-за функции scripts_window_focus).

В настоящее время официальные репозитории Linux Mint содержат только версию 0.39. Так что вам нужно скачать devilspie2непосредственно у сопровождающегоhttp://www.nongnu.org/devilspie2/и собрать самостоятельно. Это легко и быстро.Инструкции по сборке и установке вы найдете в файле INSTALLзагруженного архива.

После установки создайте два файла в каталоге~/.config/devilspie2(предполагается конфигурация по умолчанию):

devilspie2.luaсо следующим содержанием:


scripts_window_focus = { "myscript.lua" }


myscript.luaсо следующим содержимым:


if (get_application_name() == "Terminal") then set_window_below(); end


Затем просто запустите devilspie2из полноэкранного терминала. А затем просто убейте запущенный devilspie2, набрав Control-C(, или остановите его, набравControl-Z). Если вам нужно поведение не только для вашего полноэкранного терминала, но и для всех окон терминала , не останавливайте/не убивайте, а вместо этого запустите devilspie2 &в фоновом режиме.

Пока devilspie2работает с приведенной выше конфигурацией, каждое окно с именем приложения Terminal(, например gnome-terminal), будет «установлено ниже» в фокусе. Таким образом, каждый раз, когда вы щелкаете в полноэкранном терминале, вы получаете фокус, но терминал остается ниже всех других окон.

Я уверен, что вы можете сделать решение еще более удобным и подходящим для ваших конкретных потребностей (, например. запускать и останавливать при запуске ). Обратитесь к файлу devilspie2docs(READMEв архиве ).

1
18.09.2020, 20:07
1 ответ

Да, это вполне возможно, и это можно сделать даже в действующей системе.

ВАЖНОЕ ПРИМЕЧАНИЕ:ваши данные не переживут сбой диска в процессе преобразования, поэтому убедитесь, что у вас есть резервная копия.

Вот демонстрация с использованием некоторых файлов.

# Two "disks", probably called /dev/loop0 ($a) and /dev/loop1 ($b)
dd bs=1M count=100 </dev/zero >/tmp/img.a
a=$(losetup --show --find /tmp/img.a)

dd bs=1M count=100 </dev/zero >/tmp/img.b
b=$(losetup --show --find /tmp/img.b)

# Create RAID 1
mdadm --create /dev/md0 --metadata=1.2 --level=raid1 --raid-devices=2 $a $b

# See what is going on
cat /proc/mdstat

# Add a filesystem and mount it
mkfs -t ext4 -L md /dev/md0

mkdir -p /mnt/dsk
mount /dev/md0 /mnt/dsk

Теперь увеличим дисковый массив

# Another disk, probably /dev/loop2 ($d)
dd bs=1M count=100 </dev/zero >/tmp/img.d
d=$(losetup --show --find /tmp/img.d)

# Add it as a spare
mdadm --add /dev/md0 $d

# Convert from RAID 1 to RAID 5
mdadm --grow /dev/md0 --level=raid5 --raid-devices=3

# See what is going on
cat /proc/mdstat

Когда вы убедились, что процесс действительно безопасен, вы можете повторить его со своими настоящими дисками. У вас есть резервная копия?

a=/dev/sda b=/dev/sdb` d=/dev/sdd
3
18.03.2021, 23:04

Теги

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