<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.rtzra.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>RTzRa&#039;s hive - software:proxmox</title>
        <description>Все работает</description>
        <link>https://wiki.rtzra.ru/</link>
        <lastBuildDate>Sun, 19 Jul 2026 21:02:31 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.rtzra.ru/_media/wiki/logo.png</url>
            <title>RTzRa&#039;s hive</title>
            <link>https://wiki.rtzra.ru/</link>
        </image>
        <item>
            <title>Подключение Storage на PBS в другом VLAN - создано</title>
            <link>https://wiki.rtzra.ru/software/proxmox/proxmox-add-pbs-storage</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;podkljuchenie_storage_na_pbs_v_drugom_vlan&quot;&gt;Подключение Storage на PBS в другом VLAN&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если PBS находится где-то далеко от PVE (например в интернете или другом VLAN) и порт 8087 заблокирован на FireWall&amp;#039;ах то можно добавить через командную строку.
&lt;/p&gt;

&lt;p&gt;
На любом PVE из кластера выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;pvesm add pbs PBS_NAME --server 10.xx.xx.xx --port 443 --username adm_backup@pbs --datastore backup \
--fingerprint 8e:b3:22:8f:96:3b:00:b8:3d:51:96:fa:9f:1c:69:16:01:ac:79:47:a2:07:46:86:91:82:0f:1d:4d:9b:61:27 \
--password&lt;/pre&gt;

&lt;p&gt;
И вводим пароль пользователя adm_backup@pbs (он должен существовать на PBS)
&lt;/p&gt;

&lt;p&gt;
Поля:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PBS_NAME - имя Storage&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 10.xx.xx.xx - IP нашего PBS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; –port 443 - указываем порт на котором слушает Nginx или иной Reverse Proxy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fingerprint - нужен отпечаток для проверки подлинности&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если выполнение падает с ошибкой «create storage failed: PBS_NAME: error fetching datastores - fingerprint &amp;#039;F7:7C:61:70:0C:BF:E4:9F:1B:85:17:F9:93:DE:FF:40:5F:6D:22:33:D8:44:B3:83:AE:DF:BC:1D:E9:FF:F0:C7&amp;#039; not verified, abort!» - значит указываем этот правильный fingerprint, так же его можно посмотреть руками:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Способ 1: через openssl (рекомендуется)
openssl s_client -connect 10.xx.xx.xx:443 -servername 10.xx.xx.xx &amp;lt; /dev/null 2&amp;gt;/dev/null | \
openssl x509 -fingerprint -sha256 -noout | sed &amp;#039;s/://g&amp;#039; | sed &amp;#039;s/FINGERPRINT=//g&amp;#039; | \
sed &amp;#039;s/../&amp;amp;:/g;s/:$//&amp;#039;

# Или короткая версия:
echo -n | openssl s_client -connect 10.xx.xx.xx:443 2&amp;gt;/dev/null | \
openssl x509 -fingerprint -sha256 -noout | cut -d&amp;#039;=&amp;#039; -f2 | sed &amp;#039;s/://g&amp;#039; | \
fold -w2 | paste -sd: -&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/pve?do=showtag&amp;amp;tag=pve&quot; class=&quot;wikilink1&quot; title=&quot;tag:pve&quot; rel=&quot;tag&quot;&gt;pve&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/pbs?do=showtag&amp;amp;tag=pbs&quot; class=&quot;wikilink1&quot; title=&quot;tag:pbs&quot; rel=&quot;tag&quot;&gt;pbs&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/storage?do=showtag&amp;amp;tag=storage&quot; class=&quot;wikilink1&quot; title=&quot;tag:storage&quot; rel=&quot;tag&quot;&gt;storage&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/add_storage?do=showtag&amp;amp;tag=add_storage&quot; class=&quot;wikilink1&quot; title=&quot;tag:add_storage&quot; rel=&quot;tag&quot;&gt;add storage&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/dobavit_xranilische?do=showtag&amp;amp;tag=%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5&quot; class=&quot;wikilink1&quot; title=&quot;tag:dobavit_xranilische&quot; rel=&quot;tag&quot;&gt;добавить хранилище&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>fireball@undisclosed.example.com (fireball)</author>
            <pubDate>Wed, 28 Jan 2026 08:29:22 +0000</pubDate>
        </item>
        <item>
            <title> - создано</title>
            <link>https://wiki.rtzra.ru/software/proxmox/proxmox-backup-server-in-cloud</link>
            <description>
&lt;p&gt;
Proxmox: Ставим PBS на любой хост
&lt;/p&gt;

&lt;p&gt;
Взято тут: &lt;a href=&quot;https://ketanvijayvargiya.com/476-proxmox-backup-server-in-the-cloud/&quot; class=&quot;urlextern&quot; title=&quot;https://ketanvijayvargiya.com/476-proxmox-backup-server-in-the-cloud/&quot; rel=&quot;ugc nofollow&quot;&gt;https://ketanvijayvargiya.com/476-proxmox-backup-server-in-the-cloud/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Зачем: если ставим proxmox-backup то приедет куча зависимостей. А здесь только шкура для управления.
&lt;/p&gt;

&lt;p&gt;
Добавляем в /etc/apt/sources.list
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription&lt;/pre&gt;

&lt;p&gt;
И ставим: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;apt update &amp;amp;&amp;amp; apt install proxmox-backup-server -y&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/proxmox_backup_server?do=showtag&amp;amp;tag=proxmox_backup_server&quot; class=&quot;wikilink1&quot; title=&quot;tag:proxmox_backup_server&quot; rel=&quot;tag&quot;&gt;proxmox backup server&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/pbs?do=showtag&amp;amp;tag=PBS&quot; class=&quot;wikilink1&quot; title=&quot;tag:pbs&quot; rel=&quot;tag&quot;&gt;PBS&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;
</description>
            <author>fireball@undisclosed.example.com (fireball)</author>
            <pubDate>Thu, 01 Jan 2026 17:22:22 +0000</pubDate>
        </item>
        <item>
            <title>Proxmox: clone ZFS bootroot to mirror - создано</title>
            <link>https://wiki.rtzra.ru/software/proxmox/proxmox-clone-zfs-bootroor-to-mirror</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;proxmoxclone_zfs_bootroot_to_mirror&quot;&gt;Proxmox: clone ZFS bootroot to mirror&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Взято здесь: &lt;a href=&quot;https://github.com/kneutron/ansitest/blob/master/proxmox/proxmox-clone-zfs-bootroot-to-mirror.sh&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/kneutron/ansitest/blob/master/proxmox/proxmox-clone-zfs-bootroot-to-mirror.sh&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/kneutron/ansitest/blob/master/proxmox/proxmox-clone-zfs-bootroot-to-mirror.sh&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
И там еще много полезного: &lt;a href=&quot;https://github.com/kneutron/ansitest/tree/master/proxmox&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/kneutron/ansitest/tree/master/proxmox&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/kneutron/ansitest/tree/master/proxmox&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash

# Add 2nd or 3rd mirror drive to proxmox zfs boot/root and fix boot 
# This is for when you want to make a full backup of your proxmox zfs boot/root 
#   so you can test boot it on other hardware or use it as a DR drive
# 2024.May kneutron

# NOTE I TAKE NO RESPONSIBILITY FOR DATA LOSS, EDIT THIS SCRIPT BEFORE RUNNING 
# AND MAKE SURE YOU DESIGNATE THE RIGHT DISKS!

# NOTE it is HIGHLY RECOMMENDED to try this in a vm first!!!!

# REF: https://hosting-tutorials.co.uk/tutorials/linux/replacing-a-zfs-rpool-disk-with-proxmox-7-x
# REF: https://www.reddit.com/r/Proxmox/comments/1cr6wn7/tutorial_howto_migrate_a_pve_zfs_bootroot_mirror/

# Depends:
# sgdisk wipefs 

set -u # abort on undefined var
set -e # abort on error

[ $(which sgdisk |wc -l) -eq 0 ] &amp;amp;&amp;amp; apt-get install -y gdisk
[ $(which wipefs |wc -l) -eq 0 ] &amp;amp;&amp;amp; apt-get install -y util-linux
[ $(which parted |wc -l) -eq 0 ] &amp;amp;&amp;amp; apt-get install -y parted # included in case partition end needs to be manually moved + makes new gptlabel
# REF: https://sirlagz.net/2023/07/03/updated-live-resize-lvm-on-linux/

# failexit.mrg
function failexit () {
  echo &amp;#039;! Something failed! Code: &amp;#039;&amp;quot;$1 $2&amp;quot; # code # (and optional description)
  exit $1
}


# TODO EDITME and make sure to put the correct shortnames in!
oldisk1=vda
#oldisk2=vdb

newdisk1=vdc
#newdisk2=vdd

echo &amp;quot;WARNING: About to destructively apply a new GPT label to disk $newdisk1 - ^C to backout or Enter to proceed&amp;quot;
read

#zpool set autoexpand=on rpool

for disk in $newdisk1; do
 echo $disk

# need to do this if run &amp;gt;1
 parted -s /dev/$disk mklabel gpt
  
sgdisk -g \
-n 1:0:+1M \
-n 2:0:+1G \
-n 3:0:0 \
-t 1:8300 \
-t 2:EF00 \
-t 3:BF01 \
-p /dev/$disk

 gdisk -l /dev/$disk
done

echo &amp;quot;$(date) - Prep new mirror disk, blank any filesystem / zfs data&amp;quot;
set +e # OK if we fail here, not fatal
zpool labelclear /dev/${newdisk1}3
#zpool labelclear /dev/${newdisk2}3
wipefs -a /dev/${newdisk1}3
#wipefs -a /dev/${newdisk2}3
set -e

zpool status rpool -v |awk &amp;#039;NF&amp;gt;1&amp;#039;
#sizeb4=$(zpool list rpool)
echo &amp;quot;About to attach new mirror disk $newdisk1 to zfs boot disk(s) - ^C to backout / Enter = proceed&amp;quot;
read

function waitresilver () {
# wait for resilver
# do forever
while :; do
  clear
  echo &amp;quot;Pool: rpool - NOW: $(date) -- Watchresilver started: $sdate&amp;quot;

  zpool status rpool |grep -A 2 &amp;#039;in progress&amp;#039; || break 2
  zpool iostat -v rpool #2 3 &amp;amp;

  sleep 5
  date
done
ndate=$(date)
}

sdate=$(date)
set -x
#zpool add -f rpool mirror /dev/${newdisk1}3 /dev/${newdisk2}3
#zpool detach rpool /dev/${oldisk1}3
#time zpool remove rpool /dev/${oldisk2}3
time zpool attach rpool ${oldisk1}3 ${newdisk1}3 \
  || failexit 100 &amp;quot;Zpool replace $oldisk1 $newdisk1 failed&amp;quot;
set +x

waitresilver;

#set -x
#time zpool replace rpool ${oldisk2}3 ${newdisk2}3 \
#  || failexit 100 &amp;quot;Zpool replace $oldisk2 $newdisk2 failed&amp;quot;
#set +x
#waitresilver; 

zpool status -v rpool |awk &amp;#039;NF&amp;gt;0&amp;#039; # skip blank lines
echo &amp;quot;o Resilver watch rpool start: $sdate // Completed: $ndate&amp;quot;

proxmox-boot-tool status # Note if grub is being used or not here
addgrub=&amp;quot;&amp;quot;
[ $(proxmox-boot-tool status |grep -c grub) -gt 0 ] &amp;amp;&amp;amp; addgrub=&amp;quot;grub&amp;quot;

echo &amp;quot;$(date) - Fixing boot on new mirror drive&amp;quot;
set -x
proxmox-boot-tool format /dev/${newdisk1}2 --force # &amp;lt;new disk&amp;#039;s ESP partn&amp;gt;
#proxmox-boot-tool format /dev/${newdisk2}2 --force # &amp;lt;new disk&amp;#039;s ESP partn&amp;gt;
time sync; sleep 2

proxmox-boot-tool init /dev/${newdisk1}2 $addgrub # &amp;lt;new disk&amp;#039;s ESP partn&amp;gt;
#proxmox-boot-tool init /dev/${newdisk2}2 $addgrub # &amp;lt;new disk&amp;#039;s ESP partn&amp;gt;

set +e # grub error is ok here
proxmox-boot-tool refresh
set +x

zpool status rpool -v

echo &amp;#039;=====&amp;#039;
echo &amp;quot;You should be able to boot with any disk now! After shutdown + remove extra mirror disk, run:&amp;quot;
echo &amp;quot; proxmox-boot-tool clean&amp;quot;
echo &amp;quot;and:&amp;quot;
echo &amp;quot; zpool detach rpool ${newdisk1}3&amp;quot;
echo &amp;quot;or whatever the missing device GUID is in zpool status -v&amp;quot;
echo &amp;quot;Then:&amp;quot;
echo &amp;quot; zpool clear rpool&amp;quot;
echo &amp;quot;If you are running this in VM, assign 3rd mirror disk to another VM before powering this instance back on&amp;quot; 
echo &amp;quot; you will need to give the other instance a new IP address, or just do not run the same boot image simultaneously&amp;quot;

#echo &amp;quot;Size before:&amp;quot;
#echo &amp;quot;$sizeb4&amp;quot;
#echo &amp;quot;Size after:&amp;quot;
#zpool list rpool

exit;&lt;/pre&gt;

&lt;p&gt;
Таблицы разделов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Device             Start       End   Sectors  Size Type
/dev/nvme0n1p1        34      2047      2014 1007K BIOS boot
/dev/nvme0n1p2      2048   2099199   2097152    1G EFI System
/dev/nvme0n1p3   2099200 167772160 165672961  119G ZFS&lt;/pre&gt;

&lt;p&gt;
Полезные ссылки:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://forum.proxmox.com/threads/replace-512gb-ssds-with-500gb-ssds.143077/&quot; class=&quot;urlextern&quot; title=&quot;https://forum.proxmox.com/threads/replace-512gb-ssds-with-500gb-ssds.143077/&quot; rel=&quot;ugc nofollow&quot;&gt;https://forum.proxmox.com/threads/replace-512gb-ssds-with-500gb-ssds.143077/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev&quot; class=&quot;urlextern&quot; title=&quot;https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev&quot; rel=&quot;ugc nofollow&quot;&gt;https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://pve.proxmox.com/wiki/Host_Bootloader#sysboot_proxmox_boot_tool&quot; class=&quot;urlextern&quot; title=&quot;https://pve.proxmox.com/wiki/Host_Bootloader#sysboot_proxmox_boot_tool&quot; rel=&quot;ugc nofollow&quot;&gt;https://pve.proxmox.com/wiki/Host_Bootloader#sysboot_proxmox_boot_tool&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://forum.proxmox.com/threads/fixing-uefi-boot.87719/&quot; class=&quot;urlextern&quot; title=&quot;https://forum.proxmox.com/threads/fixing-uefi-boot.87719/&quot; rel=&quot;ugc nofollow&quot;&gt;https://forum.proxmox.com/threads/fixing-uefi-boot.87719/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <author>fireball@undisclosed.example.com (fireball)</author>
            <pubDate>Mon, 29 Dec 2025 10:10:53 +0000</pubDate>
        </item>
    </channel>
</rss>
