
рдХреЗрд╡реАрдПрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ред рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рд╣рдордиреЗ
рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдПрдХ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА, рдФрд░
рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдИ ред рдЖрдЬ рд╣рдо рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╢реЛрдз рд╕реЗ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗ: рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рд╡рд╣ рдЬреЛ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкреВрд░реНрдгрддрд╛ рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИред
рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреА рдПрдХ рдиреНрдпреВрдирддрдо рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдмрд╕ рдХреБрдЫ рд╣реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдмрд┐рдпрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдЫреЛрдЯреА рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рд╣реИрдВред
рдореМрдЬреВрджрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
- рдореЗрдЬрдмрд╛рдирдирд╛рдо рдмрджрд▓реЗрдВ
- рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
- DNS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓реЗрдВ
- ssh рд╣реЛрд╕реНрдЯ рдХреБрдВрдЬреА рдмрджрд▓реЗрдВ
- рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ
Libguestfs рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░реАрди рдЦреЛрдЬ рд░рд╣реА рд╣реИ - рдпрд╣ рдЖрдкрдХреЛ рдбрд┐рд╕реНрдХ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдФрд░ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд░рд┐рдЪрд░реНрдб рдЬреЛрдиреНрд╕ рдиреЗ рдХреБрдЦреНрдпрд╛рдд рд░реЗрдб рд╣реИрдЯ рдХрдВрдкрдиреА рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдПрдХреНрд╕рдЯреНрд░реАрдо 2 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдирдЯреАрдПрдлрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ рдпреВрдПрдлрдПрд╕ - рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕рднреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рд╕рд┐рд╕реНрдЯрдо рдЗрдореЗрдЬ, рдПрд▓рд╡реАрдПрдо рд╡рд┐рднрд╛рдЬрди рдЬрдм рдПрдордПрд╕ рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдЕрддрд┐рдерд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ - рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЛ (рд╣рд╛рдЗрд╡реЗрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрд╣реБрдд рд╕рдореГрджреНрдз рдФрд░ рдмрд╣реБрдд рд▓рдЪреАрд▓реА рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ (рдореВрд▓) рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЫрд╡рд┐ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ
рддреЛ, рдЪрд▓реЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдореБрдЦреНрдп рдЙрдкрдХрд░рдг рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рд╣реИ
рдЧреЗрд╕реНрдЯрдлрд╝рд┐рд╢ ред
рдЖрдЗрдП рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
$ guestfish
><fs> add-drive debian_5_i386.img
><fs> run
><fs> list-filesystems
/dev/vda1: ext3
><fs> mount-vfs rw ext3 /dev/vda1 /
><fs> cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/vda1 / ext3 errors=remount-ro 0 1
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ - рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдЧреИрд░-рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдореЛрдб (рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдореЗрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдЬреЛ рдореЗрдЬрдмрд╛рди, рд╣реЛрд╕реНрдЯрдирд╛рдо рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлрд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ:
$ guestfish <<EOF
add-drive debian_guest.img
run
mount-vfs rw ext3 /dev/vda1 /
upload -<<END /etc/hosts
127.0.0.1 localhost.localdomain localhost debian_guest.local debian_guest
10.10.10.100 debian_guest.local
END
upload -<<END /etc/resolv.conf
nameserver 8.8.8.8
END
upload -<<END /etc/hostname
debian_guest.local
END
upload -<<END /etc/network/interfaces
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.100
gateway 10.10.10.10
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
END
EOF
рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ
рд╣реЗрд░реЗрдбреЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред
(рд╡реИрд╕реЗ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ, рддреЛ рд▓реЗрдЦрдХ рд╕реНрд╡рдпрдВ рдЖрдИрдЖрд░рд╕реА рдЪреИрдирд▓
#libguestfs рдкрд░ irc.freenode.net рдкрд░ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА, рдЖрджрдореА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред)
рд╕реБрд░рдХреНрд╖рд┐рдд рдирд░рдХ
рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдлреА рд╕рдордп рддрдХ рдЦреБрдж рдХреЛ рдкреАрдбрд╝рд╛ рджреА: рдбреЗрдмрд┐рдпрди / рдЙрдмрдВрдЯреВ рдореЗрдВ, рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреБрдВрдЬреА рдкреБрдирд░реНрдЬрдирди рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд╕рдм рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдмрд┐рдЯ-рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛:
$ guestfish
><fs> add-drive debian_guest.img
><fs> run
><fs> mount-vfs rw ext3 /dev/vda1 /
><fs> download /etc/init.d/ssh /home/username/debian_5_etc_init_ssh
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП:
--- /home/username/debian_5_etc_init_ssh 2012-12-21 00:00:00.000000000 +0000
+++ /home/username/debian_5_etc_init_ssh_fixed 2012-12-21 00:00:00.000000000 +0000
@@ -32,6 +32,10 @@
([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
}
+check_ssh_host_key() {
+ if [ ! -e /etc/ssh/ssh_host_key ] ; then
+ echo "Generating Hostkey..."
+ /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' || return 1
+ fi
+ if [ ! -e /etc/ssh/ssh_host_dsa_key ] ; then
+ echo "Generating DSA-Hostkey..."
+ /usr/bin/ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key -N '' || return 1
+ fi
+ if [ ! -e /etc/ssh/ssh_host_rsa_key ] ; then
+ echo "Generating RSA-Hostkey..."
+ /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' || return 1
+ fi
+}
+
check_for_no_start() {
# forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists
if [ -e /etc/ssh/sshd_not_to_be_run ]; then
@@ -75,6 +79,7 @@
case "$1" in
start)
+ check_ssh_host_key
check_privsep_dir
check_for_no_start
check_dev_null
@@ -106,6 +111,7 @@
;;
restart)
+ check_ssh_host_key
check_privsep_dir
check_config
log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd"
рдзреНрдпрд╛рди рджреЗрдВ, рдкреИрдЪ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдФрд░ рдбреЗрдмрд┐рдпрди / рдЙрдмрдВрдЯреВ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╢реЛрдзрд┐рдд ssh рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИред рдлрд┐рд░ рдЗрд╕реЗ рдмрд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
><fs> upload /home/username/debian_5_etc_init_ssh_fixed /etc/init.d/ssh
рдЕрдм рдЪрд╛рдмрд┐рдпрд╛рдБ рд╣рдЯрд╛рдПрдВ рддрд╛рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдЖрдк рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдВ:
><fs> glob rm /etc/ssh_host_*_key*
рдирдХрд╛рдм рд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рддрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдПрдкреАрдЖрдИ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИ, рдЧреНрд▓реЛрдм рдЙрдкрд╕рд░реНрдЧ рдЖрдкрдХреЛ рдорд╛рд╕реНрдХ рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
FreeBSD рдФрд░ CentOS рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╡реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреЗред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд╛рдд рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ / рдлреНрд░реАрдмреАрдПрд╕рдбреА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рднрдВрдбрд╛рд░рдг рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдереЛрдбрд╝рд╛ рдЙрдмрд╛рдК рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЫрд╛рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ / etc / passwd рдФрд░ /etc/shadow(/etc/master.passwd рдореЗрдВ FreeBSD) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
/ Etc / passwd рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
root:x:0:0:root:/root:/bin/bash
рдореИрдВ
рд╡рд┐рдХрд┐ рд╕реЗ рдЦреЗрддреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрджреЗрд╢ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛:
- рдкрдВрдЬреАрдХрд░рдг рдирд╛рдо рдпрд╛ рд▓реЙрдЧрд┐рди
- рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЫрд╛рдпрд╛ рдореЗрдВ рдЫрд┐рдкрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдореВрд╣ рдЖрдИрдбреА
- GECOS рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ (рдЙрд░реНрдл рд╣реЛрдо) рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
- рдкрдВрдЬреАрдХрд░рдг рдЦреЛрд▓, рдпрд╛ рдЦреЛрд▓
рд╕рдВрд░рдЪрдирд╛
/ рдЖрджрд┐ / рдЫрд╛рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
root:$1$APv1HQOB$HJQhYFq9JSnhusQ.1Ql10.:14977:0:99999:7:::
рдлрд┐рд░
рд╕реЗ рд╡рд┐рдХреА рд╕реЗ :
- рдпреВрдЬрд╝рд░ рдиреЗрдо
- рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢
- рдЕрдВрддрд┐рдо рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреА рддрд╛рд░реАрдЦ
- рдХрд┐рддрдиреЗ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛
- рдХрд┐рддрдиреЗ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
- рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдХрд┐рддрдиреЗ рджрд┐рди рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
- рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд┐рддрдиреЗ рджрд┐рди рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддрд╛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ
- рд╡рд╣ рддрд┐рдерд┐ рдЬрд┐рд╕ рдкрд░ рдЦрд╛рддрд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИ
- рдЖрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░
рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджреВрд╕рд░реЗ рдлрд╝реАрд▓реНрдб (рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢) рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рддреАрди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- 1 - рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХрд╛рд░ md5, 2 - SHA512 (рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕рд╣реА рдХрд░реЗрдВ)
- APv1HQOB - рдирдордХ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- HJQhYFq9JSnhusQ.1Ql10ред - рд╕реАрдзреЗ рдирдордХ рдХреЗ рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рд╣реИрд╢ред
рд╣реИрд╢ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ:
$ mkpasswd --method=md5 --salt="APv1HQOB" "$password"
$1$APv1HQOB$HJQhYFq9JSnhusQ.1Ql10.
рд╣рдореЗрдВ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ / рдЖрджрд┐ / рдЫрд╛рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдереА рдЬрд┐рд╕рдореЗрдВ 8 рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдирдордХ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ, рдПрдХ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЗрдЪреНрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рди рджреЗрдВ:
#!/bin/bash
tempfile=`mktemp`
shadow="/etc/shadow"
salt=`pwdgen`
passwd=`pwdgen`
hash=`pwhash $salt $password`
hash_esc=`escape_hash $hash `
pwdgen() {
charspool=('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z' '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0' 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z');
len=${#charspool[*]}
for c in $(seq 8); do
echo -n ${charspool[$((RANDOM % len))]}
done
}
pwhash(){
salt=$1
password=$2
hash=`mkpasswd --method=md5 --salt=$salt $password`
echo $hash
}
# , sed $
escape_hash() {
echo $1 | sed -e 's/\//\\\//g' -e 's/\$/\\\$/g'
}
guestfish <<EOF
add-drive debian_guest.img
run
mount-vfs rw ext3 /dev/vda1 /
download /etc/shadow $tempfile
! sed 's/^root:[^:]\+:/root:$hash_esc:/' $tempfile > $tempfile.new
upload $tempfile.new $shadow
EOF
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдерд╛, рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдЦрдВрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рдмрд╛рд╣рд░реА рдСрдкрд░реЗрдЯрд░ "
! " рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рд╣рдореЗрдВ
рдЧреЗрд╕реНрдЯрдлрд╝рд┐рд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдЫ рдЫреЛрдЯреЗ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реЛрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рднреА
рдЧреЗрд╕реНрдЯрдлрд╝рд┐рд╢ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ)ред
рдорд╛рд╕реНрдЯрд░ рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдЪреВрдВрдХрд┐ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЫрд╡рд┐ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдкрдбреЗрдЯ рдпрд╛ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ), рд╣рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдЫрд╡рд┐рдпрд╛рдВ рддреИрдпрд╛рд░ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░реЗрдВрдЧреЗред рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╣рдореЗрдВ рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд▓реЙрдЧ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ
- рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд╣рдиреЗ рдХреЗ рдирд┐рд╢рд╛рди рд╣рдЯрд╛рдПрдВ
- рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рд╣рдЯрд╛рдПрдВ (рдбреЗрдмрд┐рдпрди рдФрд░ рдЙрдмрдВрдЯреВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ, рдХреЗрд╡рд▓ рд╡реЗ рдХреВрдбрд╝реЗ)
- рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд░реЗрдВ
- рдХреБрдВрдЬреА рд╣рдЯрд╛рдПрдБред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ, рд╡рд┐рднрд╛рдЬрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЫрд╡рд┐ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдЯреМрддреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХреЛрдб рд╕рдВрд▓рдЧреНрди рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:
guestfish <<EOF
add-drive debian_guest.img
run
mount-vfs rw ext3 /dev/vda1 /
upload /home/username/debian_5_etc_init_ssh_fixed /etc/init.d/ssh
-glob rm /etc/ssh/ssh_host_*
-glob rm /etc/udev/rules.d/70-persistent-net.rules
-glob rm /root/*
-glob rm /root/.*
-glob rm /var/log/*
-glob rm /var/cache/apt/archives/*deb
EOF
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рдордиреЗ "-" рдзреНрд╡рдЬ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдХрдорд╛рдВрдб
-1 рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЕрдиреНрдп рдЖрджреЗрд╢реЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдмрд╛рдзрд╛ рди рдбрд╛рд▓реЗрдВ; рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред
рдЕрдм рдЫрд╡рд┐ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
$ guestfish <<EOF
add-drive add-drive ${images}/${os}_${version}_${arch}.img
run
e2fsck-f /dev/vda1
resize2fs-M /dev/vda1
tune2fs /dev/vda1 | grep "Block count:" | sed -e 's/Block\ count:\ //g' -e 's/$/*4+2144/g' | bc > /tmp/block_count
EOF
$ foo=`cat /tmp/block_count`
$ guestfish <<EOF
allocate debian_guest_minimal.img ${foo}k
EOF
рд╕рдВрдЦреНрдпрд╛
2144 рдмреВрдЯрд▓реЛрдбрд░ рдФрд░ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рд╣рдо рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рдореЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдХрдо рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ (рдмреНрд▓реЙрдХ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛), рдФрд░ рдЙрдиреНрд╣реЗрдВ 4 рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ 4 kbytes рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп рдХреА рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ
libguestfs рдпреВрдЯрд┐рд▓рд┐рдЯреА
рдкреИрдХреЗрдЬ рд╕реЗ
рдкреБрдгреНрдп-рдЖрдХрд╛рд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрдХ рдирдИ, рдЫреЛрдЯреА рдЫрд╡рд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
$ virt-resize --shrink /dev/vda1 debian_guestl.img debian_guest_minimal.img
рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП: рдпрд╣ рдХреЗрд╡рд▓ ext2-4 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ resize2fs рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдЧреИрд░-рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ
рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛
рдерд╛ , рд▓рд┐рдмрдЧреИрд╕реНрдЯрдлрд╝реНрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ)ред рдПрдХ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
resize2fs-M рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛
рдкреИрдЪ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, FreeBSD рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдФрд░ рдбрд┐рд╕реНрдХ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЗрд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ред
рдЕрдм рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ,
рдПрдХреНрд╕рдЬрд╝ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдХреЛ рдкреИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ):
$ xz -9 debian_guest.img
$ ls -lsha debian_guest.img.xz
107M -rw-r--r-- 1 username username 107M Dec 21 00:00 debian_guest.img.xz
рдЫрд╡рд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди
рддреЛ, рд╣рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рдЫрд╡рд┐ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
- рдбрд┐рд╕реНрдХ рдкрд░ рдЫрд╡рд┐ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ
- рдмреВрдЯрд▓реЛрдбрд░ рдФрд░ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ
- рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЫрд╡рд┐ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
- рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ
- рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ
- рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ:
libguestfs рдореЗрдВ OCaml рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ -
рдЧреБрдг-рдЖрдХрд╛рд░ , рдЖрдЗрдЯрдо 2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 4 рдЗрд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, `` '' рдЧреЗрд╕реНрдЯрдлрд╝рд┐рд╢ '' рдкрд░ рдЖрдХрд╛рд░ рджреЗрдиреЗ рд╡рд╛рд▓реА рдбрд┐рд╕реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ '' (
рдЧреЗрд╕реНрдЯрдлрд┐рд╢ рдореЗрдВ
рдордм рдХреА рдирдХрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
$ guestfish <<EOF
allocate debian_guest_clone.img 10G
EOF
$ virt-resize --expand /dev/vda1 debian_guest.img debian_guest_clone.img
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдХреНрд▓реЛрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛ред