Не буду рассказывать про бесплатные и условно-бесплатные VPS, про которые тут уже и так много наговорили, но бывают ситуации, когда предустановленная ОС не подходит, например хочется ubuntu minimal или debian вместо ubuntu, или хочется протестировать windows пару недель, а она только платная, или VPs с win имеет меньше ресурсов чем с linux в дешевом тарифе. Тут собраны команды, без заглядывания "под капот", сбор информации на просторах интернета.
Замена linux на debian
Допустим сейчас на сервере стоит ubuntu, смотрим сколько места занимает система и сколько RAM , все команды выполняем от root, или через sudo
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 45G 1.8G 44G 4% /
ubuntu@vps:~$ free -h
total used free shared buff/cache available
Mem: 966Mi 148Mi 61Mi 3.0Mi 757Mi 654Mi
Swap: 0B 0B 0B
Теоретически лучше уменьшить,
Например команда для уменьшения oracle cloud
sudo snap remove --purge oracle-cloud-agent && sudo snap remove --purge core18 && sudo snap remove --purge snapd && sudo sudo apt -y purge snapd && sudo rm -rf ~/snap /snap /var/cache/snapd
sudo apt purge -y $(dpkg-query -Wf '${Package}\n' | grep header) $(apt list --installed | grep -oP "^linux.*\d\d\d\d-oracle" | grep -v "$(uname -r)") linux-modules-extra-$(uname -r) lxc* lxd* vim* && sudo apt -y autoremove && sudo apt -y autoclean && sudo apt -y clean
sudo rm -rf /var/log/* /var/lib/apt/lists/* && sudo rm -rf /var/log/* /var/lib/apt/lists/*
но у меня толку мало, система в оперативу не влазит, соответсвенно подключаю zram swap и надеюсь что все получится, если не хватает памяти, или ищем предустановленный более лехкий дистрибутив или чистим
apt update
apt install zram-config
free -h
убеждаемся что в строке Swap не нули. Далее переносим систему в оперативку. Команды выполнять по одной. size=1800m
должно быть немного больше чем занимаемая системой память.
cd /
mount -t tmpfs -o size=1800m tmpfs mnt
tar --one-file-system -c . | tar -C /mnt -x
mount --make-private -o remount,rw /
mount --move dev mnt/dev
mount --move proc mnt/proc
mount --move run mnt/run
mount --move sys mnt/sys
sed -i '/^[^#]/d;' mnt/etc/fstab
echo 'tmpfs / tmpfs defaults 0 0' >> mnt/etc/fstab
cd mnt
mkdir old_root
mount --make-private /
unshare -m
pivot_root . old_root
открываем порт 1022 для ssh подключения в перенесенную систему, и запускам ssh сервер, не забудьте включить 1022 порт на VPS консоли, если требуется
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1022 -j ACCEPT
/usr/sbin/sshd -D -p 1022 &
убиваем "старую" систему, отключаем диск и проверяем что диск отключился
pkill agetty
pkill dbus-daemon
pkill atd
pkill iscsid
pkill rpcbind
pkill unattended-upgrades
kill 1
umount -l /dev/sda1
#test
df -h |grep sda
прошиваем debian, выбрать нужну вам команду
#debian 11 x64
curl -L https://cloud.debian.org/cdimage/cloud/bullseye/latest/debian-11-generic-amd64.tar.xz | tar -OJxvf - disk.raw | dd of=/dev/sda bs=1M
#debian 10 x64
curl -L https://cloud.debian.org/cdimage/cloud/buster/latest/debian-10-generic-amd64.tar.xz | tar -OJxvf - disk.raw | dd of=/dev/sda bs=1M
#debian 11 arm
curl -L https://cloud.debian.org/cdimage/cloud/bullseye/latest/debian-11-generic-arm64.tar.xz | tar -OJxvf - disk.raw | dd of=/dev/sda bs=1M
#ubuntu server 18.04
curl -L https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-arm64-lxd.tar.xz | tar -OJxvf - disk.raw | dd of=/dev/sda bs=1M
ну и дальше по аналогии. Проверяем что всё записалось и перезагружаем, reboot скорее всего не сработает если выдал ошибку то перезагрузить надо в консоли VPS
sync
reboot -f
после включения компьютера у вас будет выбранная система с темиже ключами, но может измениться имя дефолтного пользователя, для debian - debian
для ubuntu - ubuntu
<off> Выражаю благодарность статье RDP на Ubuntu после ее прочтения начал поиски. </off>
Замена linux на Windows
Как руками устанавливать, рассмотрим позже, возможно в следующей статье. А пока воспользуемся готовыми решениями от китайцев, комманды привожу для ubuntu/debian
Все системы перечисленные ниже, после установки имеют пользователя Administrator
имеют пароль nat.ee
, подключаться по rdp на стандартный порт и сменить пароль, также на рабочем столе есть bat для смены порта на произвольный.
Некоторые VPS поддерживают только UEFI загрузку, некоторые позволяют переключать или только legacy , выбирайте образ обращая внимание на это. На сайте vps0.net можете выбрать себе образ, обращайте внимание, если в имени есть cn
это китайский язык windows, en
- соответственно английский , если efi
- efi загрузка.
# на некоторых системах возможно нужно установить доп пакеты
apt-get install -y xz-utils openssl gawk file
#Windows 7 Enterprise UEFI
export LINK='https://vps0.net/natee/win/lite/win7-sp1-ent-x64-us/win7-sp1-ent-x64-us-efi.vhd.gz'
#Windows 7 Enterprise legacy
export LINK='https://vps0.net/natee/win/lite/win7-sp1-ent-x64-us/win7-sp1-ent-x64-us.vhd.gz'
#Windows 2012R2 Datacenter UEFI
export LINK='https://vps0.net/natee/win/lite/winsrv2012r2-data-x64-us/winsrv2012r2-data-x64-us-efi.vhd.gz'
#Windows 2022 Datacenter legacy
export LINK='https://vps0.net/natee/win/lite/winsrv2022-data-x64-us/winsrv2022-data-x64-us.vhd.gz'
wget --no-check-certificate -qO InstallNET.sh 'https://vps0.net/sh/InstallNET.sh' && bash InstallNET.sh -dd $LINK
после надо подождать "прошивки", я волей случая оставлял на час-два, уверен что это много, далее в консоли VPS force reboot, и ждем еще какоето время, как система станет, можно подключаться по RDP.
Windows требует лицензию, пользуйтесь легальным, лицензионным софтом или бесплатными аналогами, не нарушайте закон.