<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.autosys.tk/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>wiki.autosys.tk</title>
        <description></description>
        <link>https://wiki.autosys.tk/</link>
        <lastBuildDate>Sun, 31 May 2026 03:23:26 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.autosys.tk/_media/wiki/dokuwiki.svg</url>
            <title>wiki.autosys.tk</title>
            <link>https://wiki.autosys.tk/</link>
        </image>
        <item>
            <title>ubuntu_setup_script</title>
            <link>https://wiki.autosys.tk/linux_faq/ubuntu_setup_script</link>
            <description>
&lt;p&gt;
В скрипте в секции &lt;strong&gt;Set needed Variables&lt;/strong&gt; надо задать только имя хоста.
Остальные параметры (&lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;&lt;/strong&gt;, &lt;strong&gt;domain-name&lt;/strong&gt;, &lt;strong&gt;DOMAIN controllers&lt;/strong&gt;) скрипт получает из &lt;strong&gt;DHCP&lt;/strong&gt; и &lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
Запускать так: &lt;strong&gt;sudo ./script.sh&lt;/strong&gt; &lt;br/&gt;

Сделать: &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
3. &lt;a href=&quot;http://kerberos.996246.n3.nabble.com/Pending-quot-gss-init-sec-context-failed-Unspecified-GSS-failure-quot-td22422.html&quot; class=&quot;urlextern&quot; title=&quot;http://kerberos.996246.n3.nabble.com/Pending-quot-gss-init-sec-context-failed-Unspecified-GSS-failure-quot-td22422.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://kerberos.996246.n3.nabble.com/Pending-quot-gss-init-sec-context-failed-Unspecified-GSS-failure-quot-td22422.html&lt;/a&gt;
I had the same problem/error and fixed it by adding “allow_weak_crypto = true” under [libdefaults] in /etc/krb5.conf 
This works for me, at least on Debian Squeeze, Ubuntu Karmic, and Ubuntu Lucid. 
This was announced in /usr/share/doc/libkrb5-3/NEWS.Debian.gz. 
Hope this helps. &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/bash

####################################
#### Set needed Variables
####################################
CONNECTION=`ip link | grep &amp;#039;state UP&amp;#039; | awk &amp;#039;{ print $2 }&amp;#039; | sed &amp;#039;s/:$//&amp;#039;`
NEW_DOMAINNAME=`grep &amp;#039;option domain-name&amp;#039; /var/lib/dhcp/dhclient.$CONNECTION.leases | tail -n 1 | awk &amp;#039;{print $3}&amp;#039; | sed &amp;#039;s/&amp;quot;//g;s/;//g&amp;#039;`
DNS_SERVERS=`grep &amp;#039;option domain-name-servers&amp;#039; /var/lib/dhcp/dhclient.$CONNECTION.leases | tail -n 1 | awk &amp;#039;{print $3}&amp;#039; | sed &amp;#039;s/,/ /g;s/;//g&amp;#039;`
DNS_STATIC_SEARCHLIST=&amp;quot;$NEW_DOMAINNAME sberbank.ru&amp;quot;
DOMAIN_CONTROLLERS=`host -t srv _ldap._tcp.$NEW_DOMAINNAME | awk {&amp;#039;print $8&amp;#039;} | sed &amp;#039;s/.$//g&amp;#039;`
DEFAULT_REALM=&amp;quot;${NEW_DOMAINNAME^^}&amp;quot;
NETBIOS_DOMAIN_NAME=$(echo $DEFAULT_REALM | sed  &amp;#039;1,$ s/\..*//g&amp;#039;)
CA_CERT_PREFIX=&amp;quot;SberBank_Root_CA&amp;quot;

# check root
if [ &amp;quot;$(id -u)&amp;quot; != &amp;quot;0&amp;quot; ]; then
  echo &amp;quot;You do not have the appropriate privileges...&amp;quot;
  exit 1
fi

##############################################
### Disable IPv6
##############################################
cp /etc/sysctl.conf /etc/sysctl.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
sed -i &amp;#039;/^net.ipv6.conf/D&amp;#039; /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.all.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.default.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.lo.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
sysctl -p

##############################################
### Setting up NameServers
##############################################
echo &amp;quot;search $DNS_STATIC_SEARCHLIST&amp;quot; | sudo tee -a /etc/resolvconf/resolv.conf.d/base
echo -ne &amp;gt; /etc/resolvconf/resolv.conf.d/head
for nameserver in $DNS_SERVERS; do echo &amp;quot;nameserver $nameserver&amp;quot; | sudo tee -a /etc/resolvconf/resolv.conf.d/head ;done
resolvconf -u

###########################################
### Add Certificates
###########################################
openssl s_client -showcerts -connect ya.ru:443 &amp;lt;/dev/null &amp;gt; chain.pem
csplit -k -f $CA_CERT_PREFIX ./chain.pem &amp;#039;/END CERTIFICATE/+1&amp;#039; {10}
find ./ -iname $CA_CERT_PREFIX\* -type f -exec grep -F -L &amp;#039;END CERTIFICATE&amp;#039; &amp;#039;{}&amp;#039; + | xargs -d &amp;#039;\n&amp;#039; rm
for file in &amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo mv &amp;quot;$file&amp;quot; /usr/local/share/ca-certificates/&amp;quot;$file&amp;quot;.pem ; done
for file in /usr/local/share/ca-certificates/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo cp &amp;quot;$file&amp;quot; /etc/ssl/certs/ ; done
c_rehash /etc/ssl/certs/
c_rehash /usr/local/share/ca-certificates/
update-ca-certificates
rm -f ./chain.pem

####################################
#### Setup Software
####################################
#echo &amp;quot;deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu xenial main&amp;quot; &amp;gt; /etc/apt/sources.list.d/kubuntu-ppa.list
#apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AC93F7A
#echo &amp;quot;deb https://tel.red/repos/ubuntu xenial non-free&amp;quot; &amp;gt; /etc/apt/sources.list.d/telred.list
#apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE49F8C5
#echo &amp;quot;deb [arch=amd64] http://repo.yandex.ru/yandex-browser/deb beta main&amp;quot; &amp;gt; /etc/apt/sources.list.d/yandex-browser.list
#curl -k https://repo.yandex.ru/yandex-browser/YANDEX-BROWSER-KEY.GPG | sudo apt-key add -

apt-get update
apt-get -y upgrade
#apt-get -y install kubuntu-full
apt-get -y install kubuntu-desktop
apt-get -y install xorg
apt-get -y install nano curl openssl libnss3-tools \
chrony krb5-config krb5-locales krb5-user libpam-krb5 \
samba smbclient winbind libpam-winbind libnss-winbind gss-ntlmssp \
ldap-utils cifs-utils libsasl2-modules-gssapi-mit \
libreoffice-l10n-ru aspell-ru language-pack-gnome-ru language-pack-gnome-ru-base \
language-pack-ru language-pack-ru-base language-pack-kde-ru \
evolution evolution-ews evolution-plugins desktop-file-utils \
xvfb myspell-ru build-essential libc6-i386

apt-get -y --allow-unauthenticated install flashplugin-installer yandex-browser-beta
#apt-get -y install sky
#apt-get install clamav tightvncserver
###  http://archive.canonical.com/pool/partner/a/adobe-flashplugin/adobe-flashplugin_20170411.1.orig.tar.gz
curl -o /tmp/adobe-flashplugin_20170411.1.orig.tar.gz \
http://szud-linux-repo.sigma.sbrf.ru/adobe-flashplugin_20170411.1.orig.tar.gz \
&amp;amp;&amp;amp; /usr/lib/flashplugin-installer/install_plugin \
/tmp/adobe-flashplugin_20170411.1.orig.tar.gz \
&amp;amp;&amp;amp; rm /tmp/adobe-flashplugin_20170411.1.orig.tar.gz

apt-get purge geoclue-2.0

#####################################################################
### Download and install Citrix VDA
#####################################################################
curl -o ./VDA.deb http://szud-linux-repo.sigma.sbrf.ru/xendesktopvda_7.13.0.382-1.Kubuntu16.04_amd64.deb &amp;amp;&amp;amp; apt-get -y install ./VDA.deb &amp;amp;&amp;amp; rm -f ./VDA.deb

###############################################
### Setup Services
###############################################
systemctl enable ssh
systemctl enable nmbd.service
systemctl enable samba.service
systemctl enable winbind.service
#############################################
#### Setting sudo
#############################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/domain_users
localuser       ALL=(ALL) ALL
%$NETBIOS_DOMAIN_NAME\\\\domain\ users          ALL=(ALL) ALL
%domain\ users          ALL=(ALL) ALL
%$NETBIOS_DOMAIN_NAME\\\\domain\ admins      ALL=(ALL) NOPASSWD: ALL
%domain\ admins      ALL=(ALL) NOPASSWD: ALL
EOF

sed -i &amp;quot;/^Defaults\ targetpw.*\$/ s/^/#/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^Defaults\ env_reset.*\$/ s/\ env_reset/\ \!env_reset/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^ALL.*ALL=(ALL).*\$/ s/^/#/&amp;quot; /etc/sudoers

############################################################
#### Suppress PolKit prompt messages
############################################################
#cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/polkit-1/localauthority/50-local.d/allow_all.pkla
#[Do not prompt users with any messages]
#Identity=unix-user:*
#Action=*
#ResultAny=yes
#ResultInactive=yes
#EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/polkit-1/localauthority/50-local.d/55-inhibit-shutdown.pkla
[Disable PowerOff, Reboot, Hibernate, Suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/polkit-1/localauthority/50-local.d/60-inhibit-network-changes.pkla
[Disable PowerOff, Reboot, Hibernate, Suspend]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.*
ResultAny=no
ResultInactive=no
ResultActive=no
EOF

#########################################
### Setup NTP servers
#########################################
sed -i &amp;quot;/^pool.*\$/ s/^/#/&amp;quot; /etc/chrony/chrony.conf
sed -i &amp;quot;/^server.*\$/ s/^/#/&amp;quot; /etc/chrony/chrony.conf

for dc in $DOMAIN_CONTROLLERS;
do
echo &amp;quot;server $dc iburst&amp;quot; | sudo tee -a /etc/chrony/chrony.conf
done

#########################################
### Setup Kerberos /etc/krb5.conf
#########################################
LIBDEFAULTS=$(cat &amp;lt;&amp;lt;EOF
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = false
default_realm = $DEFAULT_REALM
clockskew = 300
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
EOF
)

REALMS_KDC=$(for i in $DOMAIN_CONTROLLERS; do echo &amp;quot;kdc = $i&amp;quot;;done)

REALMS=$(cat &amp;lt;&amp;lt;EOF

[realms]
$DEFAULT_REALM = {
$REALMS_KDC
default_domain = $DEFAULT_REALM
}
EOF
)

DOMAIN_REALM=$(cat &amp;lt;&amp;lt;EOF

[domain_realm]
.$NEW_DOMAINNAME = $DEFAULT_REALM
$NEW_DOMAINNAME = $DEFAULT_REALM

[appdefaults]
pam = {
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        minimum_uid = 1
}
EOF
)

echo &amp;quot;$LIBDEFAULTS&amp;quot; &amp;gt; /etc/krb5.conf
echo &amp;quot;$REALMS&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf
echo &amp;quot;$DOMAIN_REALM&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf

########################################
#### Configure /etc/samba/smb.conf
########################################
SMB_CONF=$(cat &amp;lt;&amp;lt;EOF
# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
[global]
        workgroup = $NETBIOS_DOMAIN_NAME
        passdb backend = tdbsam
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        usershare allow guests = No
        idmap gid = 10000-20000
        idmap uid = 10000-20000
        realm = $DEFAULT_REALM
        security = ADS
        template homedir = /home/%D/%U
        template shell = /bin/bash
        usershare max shares = 100
        encrypt passwords = yes
        kerberos method = secrets and keytab
        winbind nested groups = yes
        winbind offline logon = yes
        winbind refresh tickets = yes
        winbind use default domain = yes
        dns proxy = no
        domain master = no
        local master = no
        preferred master = no
        load printers = no
        show add printer wizard = no
        printcap name = /dev/null
        disable spoolss = yes
        client use spnego = yes
        client ntlmv2 auth = yes
EOF
)

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
echo &amp;quot;$SMB_CONF&amp;quot; &amp;gt; /etc/samba/smb.conf

########################################
#### Configure /etc/nsswitch.conf
########################################
sed -i &amp;#039;/^passwd:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^group:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^hosts:/ s/:.*$/: files dns/&amp;#039; /etc/nsswitch.conf

##########################################
#### Configure PAM
##########################################
sed -i &amp;quot;/^Default:.*\$/ s/:.*$/: yes/&amp;quot; /usr/share/pam-configs/mkhomedir
sed -i &amp;#039;/^mkhomedir/D&amp;#039; /var/lib/pam/seen
pam-auth-update --package
################################################################
### Fix /etc/pam.d/sddm to allow copy /etc/skel/ on first logon
### https://wiki.autosys.tk/doku.php?id=linux_faq:kde_not_copying_etc_skel_on_user_first_login
################################################################
sed -i &amp;#039;/pam_kwallet/ s/^/#/g&amp;#039; /etc/pam.d/sddm

#################################################
### Disable autologin
#################################################
#sed -i &amp;quot;/^DISPLAYMANAGER_AUTOLOGIN=.*\$/ s/=.*$/=\&amp;quot;\&amp;quot;/&amp;quot; /etc/sysconfig/displaymanager

#####################################################
#### Set SDDM Theme to allow input Username
#####################################################
cp /usr/share/sddm/themes/breeze/Login.qml /usr/share/sddm/themes/breeze/Login.qml.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
sed -i &amp;quot;/^.*property bool showUsernamePrompt:.*\$/ s/:.*$/: true/&amp;quot; /usr/share/sddm/themes/breeze/Login.qml

#######################################################
#### Import CA Certificates into Browsers
#   http://blog.xelnor.net/firefox-systemcerts/
#######################################################
HOMEDIR=$(getent passwd $SUDO_USER | cut -d: -f6)
apt-get -y install libnss3-tools
rm -Rf $HOMEDIR/.mozilla
rm -Rf $HOMEDIR/.pki

########################################################
#### Create and fill cert8.db in Firefox Profile
########################################################
killall firefox
sudo -u  $SUDO_USER xvfb-run --server-args=&amp;quot;-screen 0, 1280x1024x24&amp;quot; firefox -CreateProfile default
FirefoxProfileDir=$(find $HOMEDIR&amp;#039;/.mozilla/firefox/&amp;#039; -iname &amp;#039;*.default&amp;#039;);
for certificateFile in /usr/local/share/ca-certificates/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d ${FirefoxProfileDir}
done
chmod -R a+rw $HOMEDIR/.mozilla/firefox/*

################################################################################
#### Import certificates into nssdb for Chromium engine
################################################################################
mkdir --parents $HOMEDIR/.pki/nssdb
echo 1q2w3e4r | sudo tee $HOMEDIR/.pki/nssdb/password-file
certutil -N -f $HOMEDIR/.pki/nssdb/password-file -d $HOMEDIR/.pki/nssdb
for certificateFile in /usr/local/share/ca-certificates/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -f $HOMEDIR/.pki/nssdb/password-file -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d sql:$HOMEDIR/.pki/nssdb
done
chmod -R a+rw $HOMEDIR/.pki/nssdb/*

#########################################################
### Copy databases with imported certs to default profile
#########################################################
rm -Rf /etc/skel/.pki/nssdb/*
rm -Rf /etc/skel/.mozilla/firefox/*
mkdir --parents /etc/skel/.pki/nssdb/
cp -Rf $HOMEDIR/.pki/nssdb/* /etc/skel/.pki/nssdb/
mkdir --parents /etc/skel/.mozilla/firefox/
cp -Rf $HOMEDIR/.mozilla/firefox/* /etc/skel/.mozilla/firefox/

############################################################
### Setup Evolution Mail Client
############################################################
### Force Evolution Mail to be online
############################################################
mkdir --parents /etc/skel/.config/plasma-workspace/env/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/plasma-workspace/env/evolution.sh
#!/bin/bash
export LANG=ru_RU.utf8
export LANGUAGE=ru_RU
export GIO_USE_NETWORK_MONITOR=base
EOF
##############################################################
### Create Evolution EWS Autodiscovery Script
##############################################################
mkdir --parents /etc/skel/.config/autostart-scripts/
cat &amp;lt;&amp;lt;ENDOFSCRIPT &amp;gt; /etc/skel/.config/autostart-scripts/ews_autodiscovery.sh
#! /bin/bash

export GIO_USE_NETWORK_MONITOR=base
DOMAINNAME=\`hostname -d\`
##################################################
### Check if Evolution EWS source file exist
##################################################
if [ -f ~/.config/evolution/sources/ews.\$USER.\$DOMAINNAME.1.source ]; then
echo
else
##########################################
## Check if connected to AD
##########################################
if ! wbinfo -P; then
echo &amp;quot;NETLOGON test failed&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
else
echo &amp;quot;NETLOGON test OK&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log

CURRENT_DC=\`wbinfo -P | awk &amp;#039;{print \$9}&amp;#039; | awk -F &amp;quot;\&amp;quot;&amp;quot; &amp;#039;{print \$2}&amp;#039;\`
FULL_NAME=\`wbinfo -i \$USER | awk -F &amp;quot;:&amp;quot; &amp;#039;{print \$5}&amp;#039;\`
BASEDN=\`echo \$CURRENT_DC | sed s/^[^.]*.//g | sed s/&amp;quot;\.&amp;quot;/,dc=/g | sed s/^/dc=/\`
MAIL=\`ldapsearch -h \$CURRENT_DC -b &amp;quot;\$BASEDN&amp;quot; &amp;quot;sAMAccountName=\$USER&amp;quot; | grep mail: | awk &amp;#039;{print \$2 }&amp;#039;\`

###############################################################################################
### MS Exchange autodiscovery
#### https://github.com/sys4/automx/blob/master/src/automx-test
#### http://stackoverflow.com/questions/38509837/when-using-negotiate-with-curl-is-a-keytab-file-required
#### Joined AD with samba/winbind and have package gss-ntlmssp
###############################################################################################
AUTOD_URL=&amp;quot;https://autodiscover.\`echo \$MAIL | sed &amp;#039;s/^.*@//&amp;#039;\`&amp;quot;/autodiscover/autodiscover.xml
REQUEST=\$(cat &amp;lt;&amp;lt;EOF
&amp;lt;Autodiscover xmlns=&amp;quot;http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006&amp;quot;&amp;gt;
&amp;lt;Request&amp;gt;
&amp;lt;EMailAddress&amp;gt;\$MAIL&amp;lt;/EMailAddress&amp;gt;
&amp;lt;AcceptableResponseSchema&amp;gt;http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&amp;lt;/AcceptableResponseSchema&amp;gt;
&amp;lt;/Request&amp;gt;
&amp;lt;/Autodiscover&amp;gt;
EOF
)

bash -c &amp;quot;curl -k -d &amp;#039;\$REQUEST&amp;#039; --header \&amp;quot;Content-Type: text/xml\&amp;quot; -s --negotiate -u : \$AUTOD_URL&amp;quot; &amp;gt; ~/.autodiscover.xml
OABUrl=\$(cat ~/.autodiscover.xml | grep -m 1 OABUrl | awk -F &amp;#039;[&amp;lt;&amp;gt;]&amp;#039; &amp;#039;{ print \$3 }&amp;#039;)oab.xml
EwsUrl=\$(cat ~/.autodiscover.xml | grep -m 1 EwsUrl | awk -F &amp;#039;[&amp;lt;&amp;gt;]&amp;#039; &amp;#039;{ print \$3 }&amp;#039;)
EwsHost=\$(echo \$EwsUrl | awk -F &amp;#039;/&amp;#039; &amp;#039;{ print \$3 }&amp;#039;)
rm ~/.autodiscover.xml

echo CURRENT_DC - \$CURRENT_DC &amp;gt; ~/.ews_setup.log
echo FULL_NAME - \$FULL_NAME &amp;gt;&amp;gt; ~/.ews_setup.log
echo BASEDN - \$BASEDN &amp;gt;&amp;gt; ~/.ews_setup.log
echo MAIL - \$MAIL &amp;gt;&amp;gt; ~/.ews_setup.log
echo DOMAINNAME - \$DOMAINNAME &amp;gt;&amp;gt; ~/.ews_setup.log
echo OABUrl - \$OABUrl &amp;gt;&amp;gt; ~/.ews_setup.log
echo EwsUrl - \$EwsUrl &amp;gt;&amp;gt; ~/.ews_setup.log
echo EwsHost - \$EwsHost &amp;gt;&amp;gt; ~/.ews_setup.log
################################################################
### Check URLs format
################################################################
echo \$OABUrl | grep -E &amp;#039;(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/(oab|OAB)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/oab.xml)&amp;#039;
OAB_URL_Check=\$?
echo \$EwsUrl | grep -E &amp;#039;(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/(ews|EWS)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/exchange.asmx)&amp;#039;
EWS_URL_Check=\$?

if [ \$OAB_URL_Check != 0 ] || [ \$EWS_URL_Check != 0 ]; then
echo &amp;quot;OAB and EWS URLs check failed... Exit...&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
else
echo &amp;quot;OAB and EWS URLs check OK&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log

######################################################################
### CleaningUp and creating evolution source files
######################################################################
killall evolution-source-registry
rm -Rf ~/.config/evolution/sources
mkdir --parents ~/.config/evolution/sources

#####################################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.\$USER.\$DOMAINNAME.1.source
[Data Source]
DisplayName=\$MAIL
Enabled=true
Parent=

[Offline]
StaySynchronized=true

[Authentication]
Host=\$EwsHost
Method=GSSAPI
Port=443
ProxyUid=system-proxy
RememberPassword=true
User=\$USER
CredentialName=

[Collection]
BackendName=ews
CalendarEnabled=true
ContactsEnabled=true
Identity=\$USER
MailEnabled=true

[Security]
Method=none

[Ews Backend]
FilterInbox=true
StoreChangesInterval=3
CheckAll=true
ListenNotifications=true
Email=\$MAIL
FilterJunk=true
FilterJunkInbox=false
FoldersInitialized=true
GalUid=ews.\$USER.\$DOMAINNAME
Hosturl=\$EwsUrl
Oaburl=\$OABUrl
OabOffline=true
OalSelected=
Timeout=300
UseImpersonation=false
ImpersonateUser=
EOF

######################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.\$USER.\$DOMAINNAME.0.source
[Data Source]
DisplayName=\$MAIL
Enabled=true
Parent=ews.\$USER.\$DOMAINNAME.1

[Mail Composition]
Bcc=
Cc=
DraftsFolder=folder://ews.\$USER.\$DOMAINNAME/%d0%a7%d0%b5%d1%80%d0%bd%d0%be%d0%b2%d0%b8%d0%ba%d0%b8
SignImip=true
TemplatesFolder=folder://local/Templates

[Mail Identity]
Address=\$MAIL
Name=\$FULL_NAME
Organization=
ReplyTo=
SignatureUid=none

[Mail Submission]
SentFolder=folder://ews.\$USER.\$DOMAINNAME/%d0%9e%d1%82%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5
TransportUid=ews.\$USER.\$DOMAINNAME.13
RepliesToOriginFolder=false
EOF

######################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.\$USER.\$DOMAINNAME.3.source
[Data Source]
DisplayName=\$MAIL
Enabled=true
Parent=ews.\$USER.\$DOMAINNAME.1

[Refresh]
Enabled=true
IntervalMinutes=3

[Mail Account]
BackendName=ews
IdentityUid=ews.\$USER.\$DOMAINNAME
ArchiveFolder=
EOF

###############################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.\$USER.\$DOMAINNAME.13.source
[Data Source]
DisplayName=\$MAIL
Enabled=true
Parent=ews.\$USER.\$DOMAINNAME.1

[Mail Transport]
BackendName=ews
EOF

################################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/local.source
# Special built-in mail store.
[Data Source]
DisplayName=On This Computer
Enabled=false
Parent=

[Mail Account]
BackendName=maildir
IdentityUid=self
ArchiveFolder=

[Maildir Backend]
FilterInbox=true
Path=\$HOME/.local/share/evolution/mail/local
EOF

########################################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/vfolder.source
# Special built-in mail store.

[Data Source]
DisplayName=Search Folders
Enabled=false
Parent=

[Mail Account]
BackendName=vfolder
IdentityUid=self
ArchiveFolder=

[Vfolder Backend]
FilterInbox=true
EOF

##########################################################################
mkdir --parents ~/.config/evolution/mail/
cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/mail/state.ini
[GlobalFolder]
GroupByThreads=false
PreviewVisible=true

[Store ews.\$USER.\$DOMAINNAME.3]
Expanded=true

[Search Bar]
SearchScope=mail-scope-current-folder
SearchOption=mail-search-subject-or-addresses-contain

[Folder Tree]
Selected=folder://ews.\$USER.\$DOMAINNAME.3/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5

[Folder folder://ews.\$USER.\$DOMAINNAME.3/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5]
GroupByThreads=false
PreviewVisible=true
Expanded=true

EOF

fi
fi
fi
ENDOFSCRIPT

chmod +x /etc/skel/.config/autostart-scripts/ews_autodiscovery.sh

#############################################################
### Disable Screen Locker By Default
#############################################################
mkdir --parents /etc/skel/.config/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kscreenlockerrc
[Daemon]
Autolock=false
EOF

#########################################################
### Disable KDEWallet By Default
#########################################################
mkdir --parents /etc/skel/.config
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kwalletrc
[Wallet]
Enabled=false
EOF

############################################################
### Enable Autostart apps
############################################################
mkdir --parents /etc/skel/.config/autostart/
cp /usr/share/applications/sky.desktop /etc/skel/.config/autostart/

##########################################################
###Change Default Desktop View to Folder
##########################################################
cp /usr/share/plasma/shells/org.kde.plasma.desktop/contents/defaults /usr/share/plasma/shells/org.kde.plasma.desktop/contents/defaults.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
sed -i &amp;#039;/Containment=/ s/org.kde.desktopcontainment$/org.kde.plasma.folder/&amp;#039; /usr/share/plasma/shells/org.kde.plasma.desktop/contents/defaults

#############################################################
### Disable Desktop Effects By Default (Compositor)
#############################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kwinrc
[Compositing]
Enabled=false
EOF

#########################################################
### Create Default Shortcuts
#########################################################
mkdir --parents /etc/skel/Desktop
cp /usr/share/applications/evolution.desktop /etc/skel/Desktop/
cp /usr/share/applications/libreoffice-calc.desktop /etc/skel/Desktop/
cp /usr/share/applications/libreoffice-writer.desktop /etc/skel/Desktop/
cp /usr/share/applications/libreoffice-impress.desktop /etc/skel/Desktop/
cp /usr/share/applications/yandex-browser-beta.desktop /etc/skel/Desktop/
cp /usr/share/applications/org.kde.konsole.desktop /etc/skel/Desktop/
cp /usr/share/applications/org.kde.dolphin.desktop /etc/skel/Desktop/

chmod +x /etc/skel/Desktop/*

###############################################################################
### Modifying KDE default panel settings
### https://forum.kde.org/viewtopic.php?f=67&amp;amp;t=94534#p193422
### http://askubuntu.com/questions/897979/unable-to-populate-a-kde-quicklaunch-widget-via-the-plasma-scripting-interface
##############################################################################
cp /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
#########################################################
#### Change kickoff menu to kicker by default for new users
#### org.kde.plasma.kickoff -&amp;gt; org.kde.plasma.kicker
#########################################################
sed -i &amp;#039;s/kickoff/kicker/g&amp;#039; /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js
###########################################################################
#### Add quick launchers
############################################################################
QUICKLAUNCHERS=$(cat &amp;lt;&amp;lt;EOF

//Add QuickLaunchers
var quicklaunch = panel.addWidget(&amp;quot;org.kde.plasma.quicklaunch&amp;quot;);
var qlurls = [&amp;quot;file:///usr/share/applications/yandex-browser-beta.desktop&amp;quot;,
          &amp;quot;file:///usr/share/applications/evolution.desktop&amp;quot;,
          &amp;quot;file:///usr/share/applications/libreoffice-writer.desktop&amp;quot;,
          &amp;quot;file:///usr/share/applications/libreoffice-calc.desktop&amp;quot;,
          &amp;quot;file:///usr/share/applications/org.kde.dolphin.desktop&amp;quot;,
          &amp;quot;file:///usr/share/applications/org.kde.konsole.desktop&amp;quot;
         ];
quicklaunch.currentConfigGroup = [&amp;quot;General&amp;quot;];
quicklaunch.writeConfig(&amp;quot;launcherUrls&amp;quot;, qlurls);
EOF
)

grep -q &amp;quot;//Add QuickLaunchers&amp;quot; /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js
[ $? -ne 0 ] &amp;amp;&amp;amp; while read line
do
        echo &amp;quot;$line&amp;quot; &amp;gt;&amp;gt; /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js_new
        echo &amp;quot;$line&amp;quot; | grep -q &amp;quot;kicker.writeConfig&amp;quot;
        [ $? -eq 0 ] &amp;amp;&amp;amp; echo &amp;quot;$QUICKLAUNCHERS&amp;quot; &amp;gt;&amp;gt; /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js_new
done &amp;lt; /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js

mv /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js_new /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js

###########################################################################################
### Enable Russian Locale
###########################################################################################
locale-gen ru_RU.UTF-8
update-locale LANG=&amp;quot;ru_RU.UTF-8&amp;quot; LANGUAGE=&amp;quot;ru_RU&amp;quot;
mkdir --parents /etc/skel/.config/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/plasma-locale-settings.sh
# Generated script, do not edit
# Exports language-format specific env vars from startkde.
# This script has been generated from kcmshell5 formats.
# It will automatically be overwritten from there.
export LANG=cu_RU.UTF-8
export LANGUAGE=ru
EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/plasma-localerc
[Formats]
LANG=cu_RU.UTF-8

[Translations]
LANGUAGE=ru
EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kdeglobals
[Translations]
LANGUAGE=ru
EOF

mkdir --parents /etc/skel/.config/KDE
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/KDE/Sonnet.conf
[General]
autodetectLanguage=true
backgroundCheckerEnabled=true
checkUppercase=true
checkerEnabledByDefault=false
defaultClient=
defaultLanguage=ru_RU
ignore_ru_RU=Amarok, KAddressBook, KDevelop, KHTML, KIO, KJS, KMail, KMix, KOrganizer, Konqueror, Kontact, Nepomuk, Okular, Qt, Sonnet
skipRunTogether=true
EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kcminputrc
[Keyboard]
KeyboardRepeating=0
NumLock=2
RepeatDelay=600
RepeatRate=25
EOF

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kxkbrc
[Layout]
DisplayNames=,
LayoutList=ru,us
LayoutLoopCount=-1
Model=pc101
Options=grp:alt_shift_toggle,grp:ctrl_shift_toggle
ResetOldOptions=true
ShowFlag=false
ShowLabel=true
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=Global
Use=true
EOF

############################################################
### Export Locale Variables
############################################################
mkdir --parents /etc/skel/.config/plasma-workspace/env/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/plasma-workspace/env/locale_ru.sh
#!/bin/bash
export LANG=ru_RU.utf8
export LANGUAGE=ru_RU
EOF

###########################################################
### Set MIME types applications
###########################################################
xdg-settings set default-url-scheme-handler yandex-browser-beta.desktop
xdg-settings set default-url-scheme-handler yandex-browser-beta.desktop

#cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/mimeapps.list
#[Default Applications]
#inode/directory=org.kde.dolphin.desktop
#x-scheme-handler/http=yandex-browser-beta.desktop
#x-scheme-handler/https=yandex-browser-beta.desktop
#EOF

#######################################################################################
### Setup LibreOffice Locale
#######################################################################################
mkdir --parents /etc/skel/.config/libreoffice/4/user/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/libreoffice/4/user/registrymodifications.xcu
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;oor:items xmlns:oor=&amp;quot;http://openoffice.org/2001/registry&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/Office/Factories/org.openoffice.Setup:Factory[&amp;#039;com.sun.star.presentation.PresentationDocument&amp;#039;]&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ooSetupFactoryDefaultFilter&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;Impress MS PowerPoint 2007 XML&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/Office/Factories/org.openoffice.Setup:Factory[&amp;#039;com.sun.star.sheet.SpreadsheetDocument&amp;#039;]&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ooSetupFactoryDefaultFilter&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;Calc MS Excel 2007 XML&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/Office/Factories/org.openoffice.Setup:Factory[&amp;#039;com.sun.star.text.TextDocument&amp;#039;]&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ooSetupFactoryDefaultFilter&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;MS Word 2007 XML&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/ServiceManager/SpellCheckerList&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ru-RU&amp;quot; oor:op=&amp;quot;fuse&amp;quot; oor:type=&amp;quot;oor:string-list&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;it&amp;gt;org.openoffice.lingu.MySpellSpellChecker&amp;lt;/it&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/ServiceManager/SpellCheckerList&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;en-US&amp;quot; oor:op=&amp;quot;fuse&amp;quot; oor:type=&amp;quot;oor:string-list&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;it&amp;gt;org.openoffice.lingu.MySpellSpellChecker&amp;lt;/it&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/ServiceManager/LastFoundSpellCheckers&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ru-RU&amp;quot; oor:op=&amp;quot;fuse&amp;quot; oor:type=&amp;quot;oor:string-list&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;it&amp;gt;org.openoffice.lingu.MySpellSpellChecker&amp;lt;/it&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/ServiceManager/LastFoundSpellCheckers&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;en-US&amp;quot; oor:op=&amp;quot;fuse&amp;quot; oor:type=&amp;quot;oor:string-list&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;it&amp;gt;org.openoffice.lingu.MySpellSpellChecker&amp;lt;/it&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/General&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;DefaultLocale_CTL&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/General&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;DefaultLocale&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ru-RU&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/General&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;DefaultLocale_CJK&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/General&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;IsIgnoreControlCharacters&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Office.Linguistic/General&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;UILocale&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ru&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/L10N&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ooLocale&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ru&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/L10N&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;ooSetupSystemLocale&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ru-RU&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/L10N&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;IgnoreLanguageChange&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;false&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;item oor:path=&amp;quot;/org.openoffice.Setup/L10N&amp;quot;&amp;gt;&amp;lt;prop oor:name=&amp;quot;DecimalSeparatorAsLocale&amp;quot; oor:op=&amp;quot;fuse&amp;quot;&amp;gt;&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&amp;lt;/item&amp;gt;
&amp;lt;/oor:items&amp;gt;
EOF

####################################################################
#### Install Kaspersky
####################################################################
ADDONSDIR=&amp;quot;/tmp/addons&amp;quot;
mkdir --parents $ADDONSDIR
curl http://szud-linux-repo.sigma.sbrf.ru/addons.tar.gz | tar -xzv -C $ADDONSDIR
apt-get -y install libc6-i386 build-essential
dpkg -i --force-architecture $ADDONSDIR/kes10/*.deb

###‘PT_PTRACE_CAP’ undeclared (first use in this function)
sed -i &amp;#039;s/ | PT_PTRACE_CAP//&amp;#039; /opt/kaspersky/kav4fs/src/kernel/module.linux/interceptor_rfs.c
/opt/kaspersky/kav4fs/bin/kav4fs-setup.pl --auto-install=$ADDONSDIR/kes10/install.conf

### i_mutex_fix
sed -i &amp;#039;s/mutex_lock(&amp;amp;inode-&amp;gt;i_mutex);/inode_lock(inode);/&amp;#039; /opt/kaspersky/kav4fs/src/kernel/redirfs/rfs.h
sed -i &amp;#039;s/mutex_unlock(&amp;amp;inode-&amp;gt;i_mutex);/inode_unlock(inode);/&amp;#039; /opt/kaspersky/kav4fs/src/kernel/redirfs/rfs.h

/opt/kaspersky/klnagent/lib/bin/setup/postinstall.pl &amp;lt;$ADDONSDIR/kes10/server
/opt/kaspersky/kav4fs/bin/kav4fs-wmconsole-passwd
service kav4fs-wmconsole restart

reboot&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;join_ad_setup_vda&quot;&gt;Join AD &amp;amp; Setup VDA&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/bash

####################################
#### Set needed Variables
####################################
NEW_HOSTNAME=$1
CONNECTION=`ip link | grep &amp;#039;state UP&amp;#039; | awk &amp;#039;{ print $2 }&amp;#039; | sed &amp;#039;s/:$//&amp;#039;`
NEW_DOMAINNAME=`grep &amp;#039;option domain-name&amp;#039; /var/lib/dhcp/dhclient.$CONNECTION.leases | tail -n 1 | awk &amp;#039;{print $3}&amp;#039; | sed &amp;#039;s/&amp;quot;//g;s/;//g&amp;#039;`

# check root
if [ &amp;quot;$(id -u)&amp;quot; != &amp;quot;0&amp;quot; ]; then
  echo &amp;quot;You do not have the appropriate privileges...&amp;quot;
  exit 1
fi

# check hostname $1
if [[ -z &amp;quot;$1&amp;quot; ]]; then
        echo &amp;quot;Hostname is epmty&amp;quot;
        echo &amp;quot;Try to run: ./join_ad_ctx.sh new-host-name&amp;quot;
        exit 1
fi

###############################################
### Setting HOSTNAME, DOMAINNAME
###############################################
sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
echo &amp;quot;127.0.0.1 $NEW_HOSTNAME.$NEW_DOMAINNAME $NEW_HOSTNAME localhost&amp;quot; | sudo tee -a /etc/hosts
echo &amp;quot;127.0.0.2 $NEW_HOSTNAME.$NEW_DOMAINNAME $NEW_HOSTNAME&amp;quot; | sudo tee -a /etc/hosts
hostname $NEW_HOSTNAME
domainname $NEW_DOMAINNAME
echo $NEW_HOSTNAME.$NEW_DOMAINNAME | sudo tee /etc/HOSTNAME
echo $NEW_HOSTNAME.$NEW_DOMAINNAME | sudo tee /etc/hostname

net ads join -U ADDSIGMACA

/opt/Citrix/VDA/sbin/ctxcleanup.sh
CTX_XDL_SUPPORT_DDC_AS_CNAME=N \
CTX_XDL_DDC_LIST=&amp;quot;v-szud-ctxdc-01.sigma.sbrf.ru v-szud-ctxdc-02.sigma.sbrf.ru&amp;quot; \
CTX_XDL_VDA_PORT=80 \
CTX_XDL_REGISTER_SERVICE=Y \
CTX_XDL_ADD_FIREWALL_RULES=Y \
CTX_XDL_AD_INTEGRATION=1 \
CTX_XDL_HDX_3D_PRO=N \
CTX_XDL_VDI_MODE=Y \
CTX_XDL_SITE_NAME=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_LDAP_LIST=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_SEARCH_BASE=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_START_SERVICE=Y \
/opt/Citrix/VDA/sbin/ctxsetup.sh

sleep 10
reboot&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Join AD &amp;amp; Setup VDA&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;join_ad_setup_vda&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;32693-34357&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;join_multiple_vms_to_ad&quot;&gt;Join multiple VMs to AD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/bash
vms_ip=$(cat &amp;lt;&amp;lt;EOF
10.38.246.47
10.38.247.23
10.38.246.46
10.38.247.22
10.38.246.45
10.38.246.44
10.38.246.43
10.38.246.42
10.38.246.41
EOF
)

i=30
for ip_addr in $vms_ip; do
echo &amp;#039;IP &amp;#039;$ip_addr &amp;#039; name - szud-ubuntu&amp;#039;$i
ssh -o StrictHostKeyChecking=no -t localuser@$ip_addr &amp;quot;sudo ~/join_ad_setup_ctx.sh szud-ubuntu$i&amp;quot; &amp;amp;
((i-=1))
done&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Join multiple VMs to AD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;join_multiple_vms_to_ad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;34358-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 29 Mar 2021 18:44:15 +0000</pubDate>
        </item>
        <item>
            <title>мультизагрузочная_флешка_с_помощью_grub</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D1%84%D0%BB%D0%B5%D1%88%D0%BA%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_grub</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;мультизагрузочная_linux-флешка&quot;&gt;Мультизагрузочная Linux-флешка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Тут описана процедура создания флешки для загрузки множества &lt;strong&gt;iso&lt;/strong&gt;-образов на компьютерах с &lt;strong&gt;BIOS&lt;/strong&gt;. На компьютерах с &lt;strong&gt;UEFI&lt;/strong&gt; она не работает. Для компов с &lt;strong&gt;UEFI&lt;/strong&gt; я делал &lt;a href=&quot;https://wiki.autosys.tk/linux_faq/universal_multiboot_grub_bios_uefi&quot; class=&quot;wikilink1&quot; title=&quot;linux_faq:universal_multiboot_grub_bios_uefi&quot; data-wiki-id=&quot;linux_faq:universal_multiboot_grub_bios_uefi&quot;&gt;Универсальную загрузочную флешку для BIOS/UEFI&lt;/a&gt;.&lt;br/&gt;

Хорошо иметь под рукой флешку, с которой можно загрузиться для восстановления или установки системы. Также хорошо бы чтобы на ней помещались несколько разных образов &lt;strong&gt;ISO&lt;/strong&gt;, доступных из меню.
Создать такую флешку можно с помощью специализированных программных средств как под Linux ( &lt;a href=&quot;http://liveusb.info/dotclear&quot; class=&quot;urlextern&quot; title=&quot;http://liveusb.info/dotclear&quot; rel=&quot;ugc nofollow&quot;&gt;Multisystem&lt;/a&gt;) так и под Windows (&lt;a href=&quot;http://sites.google.com/site/shamurxboot/&quot; class=&quot;urlextern&quot; title=&quot;http://sites.google.com/site/shamurxboot/&quot; rel=&quot;ugc nofollow&quot;&gt;XBOOT&lt;/a&gt;), и даже мультиплатформенных (&lt;a href=&quot;http://www.pendrivelinux.com/yumi-multiboot-usb-creator/&quot; class=&quot;urlextern&quot; title=&quot;http://www.pendrivelinux.com/yumi-multiboot-usb-creator/&quot; rel=&quot;ugc nofollow&quot;&gt;Yumi&lt;/a&gt;).
Но можно пойти &lt;strong&gt;true linux way™&lt;/strong&gt; и использовать &lt;strong&gt;GRUB&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041c\u0443\u043b\u044c\u0442\u0438\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u0430\u044f Linux-\u0444\u043b\u0435\u0448\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u0443\u043b\u044c\u0442\u0438\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u0430\u044f_linux-\u0444\u043b\u0435\u0448\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1342&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;создание_и_форматирование_раздела&quot;&gt;Создание и форматирование раздела&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сначала нужно создать на флешке раздел и сделать его загрузочным.
Запускаем &lt;strong&gt;fdisk&lt;/strong&gt; и натравливаем его на нашу флешку. Нижеприведенные команды делаем с правами &lt;strong&gt;root&lt;/strong&gt;.
Список дисков смотрим командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;fdisk -l&lt;/pre&gt;

&lt;p&gt;
Запускаем &lt;strong&gt;fdisk&lt;/strong&gt; (указав свою флешку):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;fdisk /dev/sdx&lt;/pre&gt;

&lt;p&gt;
Если на диске есть разделы, то ликвидируем их. Для этого жмем &lt;strong&gt;d&lt;/strong&gt; &lt;br/&gt;

После удаления разделов жмем &lt;strong&gt;n&lt;/strong&gt; и создаем новый.&lt;br/&gt;

В процессе создания указваем что раздел &lt;strong&gt;p&lt;/strong&gt; (primary).&lt;br/&gt;

После создания жмем &lt;strong&gt;a&lt;/strong&gt;, чтобы сделать раздел активным.&lt;br/&gt;

Затем жмем &lt;strong&gt;t&lt;/strong&gt;, чтобы задать тип раздела и вводим тип &lt;strong&gt;c&lt;/strong&gt; (FAT32).&lt;br/&gt;

Жмем &lt;strong&gt;w&lt;/strong&gt; и записываем изменения на флешку. &lt;br/&gt;

&lt;br/&gt;

Теперь надо отформатировать созданный раздел в FAT32:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;umount /dev/sdx1
mkfs.vfat -F 32 -n MULTIBOOT /dev/sdx1&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0438_\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1343-2636&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;установка_загрузчика_grub&quot;&gt;Установка загрузчика GRUB&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Дальше ставим GRUB2 на флешку.&lt;br/&gt;

Создаем точку монтирования и монтируем флешку (не забываем &lt;strong&gt;sdx&lt;/strong&gt; менять на актуальные буквы, соотвествующие флешке):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkdir /mnt/USB &amp;amp;&amp;amp; sudo mount /dev/sdx1 /mnt/USB&lt;/pre&gt;

&lt;p&gt;
Устанавливаем GRUB (выполняем с правами root):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo grub-install --force --no-floppy --boot-directory=/mnt/USB/boot /dev/sdx &lt;/pre&gt;

&lt;p&gt;
Старые версии GRUB вместо &lt;strong&gt;–boot-directory&lt;/strong&gt; используют &lt;strong&gt;-root-directory&lt;/strong&gt;. Если что-то не так, то установщик GRUB скажет что &lt;strong&gt;“Installation is impossible. Aborting”&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

Создаем на флешку файлик &lt;strong&gt;grub.cfg&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nano /mnt/USB/boot/grub/grub.cfg&lt;/pre&gt;

&lt;p&gt;
И заполняем его примерно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;set timeout=10
set default=0

menuentry &amp;quot;KNOPPIX_V7.2.0CD-2013-06-16-EN LiveCD&amp;quot; {
loopback loop /KNOPPIX_V7.2.iso
#linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V7.2.iso acpi=off keyboard=us language-us
linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V7.2.iso keyboard=us language-us
initrd (loop)/boot/isolinux/minirt.gz
}

menuentry &amp;quot;SystemRescueCd 4.6.1 Live (64bit, cache all files in memory and startX)&amp;quot; {
 loopback loop /systemrescuecd.4.6.1.iso
 linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd.4.6.1.iso setkmap=us docache dostartx
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;SystemRescueCd 4.6.1 Live (64bit, default boot options)&amp;quot; {
 loopback loop /systemrescuecd.4.6.1.iso
 linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd.4.6.1.iso setkmap=us
 initrd (loop)/isolinux/initram.igz
}
  
menuentry &amp;quot;SystemRescueCd 4.6.1 Live (32bit, default boot options)&amp;quot; {
 loopback loop /systemrescuecd.4.6.1.iso
 linux (loop)/isolinux/rescue32 isoloop=/systemrescuecd.4.6.1.iso setkmap=us
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;Ubuntu 14.04.3 x64 Desktop with GNOME. Live and Install&amp;quot; {
 loopback loop /ubuntu-14.04.3-desktop-amd64.iso
 linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-14.04.3-desktop-amd64.iso quiet splash
 initrd (loop)/casper/initrd.lz
}

menuentry &amp;quot;Kubuntu 14.04.3 x64 Desktop with KDE. Live and Install&amp;quot; {
 loopback loop /kubuntu-14.04.3-desktop-amd64.iso
 linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/kubuntu-14.04.3-desktop-amd64.iso quiet splash
 initrd (loop)/casper/initrd.lz
}

menuentry &amp;quot;Xubuntu 14.04.3 x64 Desktop with LXDE. Live and Install&amp;quot; {
        loopback loop /xubuntu-14.04.3-desktop-amd64.iso
        linux   (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/xubuntu-14.04.3-desktop-amd64.iso quiet splash --
        initrd  (loop)/casper/initrd.lz 
}

menuentry &amp;quot;Ubuntu 14.04.3 x64 Server&amp;quot; {
        loopback loop /ubuntu-14.04.3-server-amd64.iso
	linux	(loop)/install/vmlinuz iso-scan/filename=/ubuntu-14.04.3-server-amd64.iso quiet --
	initrd	(loop)/install/initrd.gz
}

menuentry &amp;quot;CentOS 7 03.15 x64 Install&amp;quot; {
        loopback loop /CentOS-7-x86_64-Minimal-1503-01.iso
	linux	(loop)/isolinux/vmlinuz noeject inst.stage2=hd:LABEL=MIKEBOOT:/CentOS-7-x86_64-Minimal-1503-01.iso
	initrd	(loop)/isolinux/initrd.img
}

menuentry &amp;quot;SystemRescueCd 4.8.1 Live (64bit, default boot options)&amp;quot; {
 loopback loop /systemrescuecd-x86-4.8.1.iso
 linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd-x86-4.8.1.iso setkmap=us
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;Try Xubuntu x64 16.04.1 without installing&amp;quot; {
        loopback loop /xubuntu-16.04.1-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz.efi iso-scan/filename=/xubuntu-16.04.1-desktop-amd64.iso file=(loop)/preseed/xubuntu.seed boot=casper quiet splash ---
	initrd	(loop)/casper/initrd.lz
}
menuentry &amp;quot;Install Xubuntu 16.04.1 x64&amp;quot; {
        loopback loop /xubuntu-16.04.1-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz.efi iso-scan/filename=/xubuntu-16.04.1-desktop-amd64.iso file=(loop)/preseed/xubuntu.seed boot=casper only-ubiquity quiet splash ---
	initrd	(loop)/casper/initrd.lz
}

menuentry &amp;quot;Install Xubuntu 16.04.1 i386&amp;quot; {
        loopback loop /xubuntu-16.04.1-desktop-i386.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz iso-scan/filename=/xubuntu-16.04.1-desktop-i386.iso file=(loop)/preseed/xubuntu.seed boot=casper only-ubiquity quiet splash ---
	initrd	(loop)/casper/initrd.lz
}

menuentry &amp;quot;Install Ubuntu Server 16.04.2 {
    loopback loop /ubuntu-16.04.2-server-amd64.iso
	set gfxpayload=keep
	linux	(loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed quiet ---
	initrd	(loop)/install/initrd.gz
}

menuentry &amp;quot;Fedora-Workstation-Live 25&amp;quot; {
 loopback loop /Fedora-Workstation-Live-x86_64-25-1.3.iso
 linux (loop)/isolinux/vmlinuz iso-scan/filename=/Fedora-Workstation-Live-x86_64-25-1.3.iso root=live:CDLABEL=Fedora-WS-Live-25-1-3 rd.live.image quiet rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0
 initrd (loop)/isolinux/initrd.img
}

menuentry &amp;quot;Fedora-KDE-Live 25&amp;quot; {
 loopback loop /Fedora-KDE-Live-x86_64-25-1.3.iso
 linux (loop)/isolinux/vmlinuz iso-scan/filename=/Fedora-KDE-Live-x86_64-25-1.3.iso root=live:CDLABEL=Fedora-KDE-Live-25-1-3 rd.live.image quiet rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0
 initrd (loop)/isolinux/initrd.img
}

menuentry &amp;quot;Install Kubnuntu 16.04.2 Desktop&amp;quot; {
        loopback loop /kubuntu-16.04.2-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz.efi  iso-scan/filename=/kubuntu-16.04.2-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
	initrd	(loop)/casper/initrd.lz
}

&lt;/pre&gt;

&lt;p&gt;
Этот содержит конфигурацию для загрузки с флешки &lt;strong&gt;KNOPPIX 7.2&lt;/strong&gt;, &lt;strong&gt;SystemRescueCd 4.6.1&lt;/strong&gt;, различных вариантов &lt;strong&gt;Ubuntu&lt;/strong&gt; и &lt;strong&gt;CentOS 7&lt;/strong&gt;. 
А дальше осталось просто положить указанные в &lt;strong&gt;grub.cfg&lt;/strong&gt; образы ISO в корневую директорию флешки и переименовать их как указано в файле.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 GRUB&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2637-8771&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;еще_немного_примеров&quot;&gt;Еще немного примеров&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;menuentry &amp;quot;Linux Mint ISO&amp;quot; {
 loopback loop /linuxmint.iso
 linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.l iso-scan/filename=/linuxmint.iso noeject noprompt splash --
 initrd (loop)/casper/initrd.lz
}

menuentry &amp;quot;DBAN ISO&amp;quot; {
 loopback loop /dban.iso
 linux (loop)/DBAN.BZI nuke=&amp;quot;dwipe&amp;quot; iso-scan/filename=/dban.iso silent --
}
                                                                                                                                                                            
menuentry &amp;quot;Tinycore ISO&amp;quot; {                                                                                                                                                                      
 loopback loop /tinycore.iso 
 linux (loop)/boot/bzImage --
 initrd (loop)/boot/tinycore.gz
}

menuentry &amp;quot;Memtest 86+&amp;quot; {
 linux16 /memtest86+.bin
}

menuentry &amp;quot;Debian 9.5 i386 Install&amp;quot; {
    set background_color=black
    loopback loop /debian-9.5.0-i386-netinst.iso
    linux    (loop)/install.386/vmlinuz vga=788 --- quiet 
    initrd   (loop)/install.386/initrd.gz
}

menuentry &amp;quot;Install Kubnuntu 19.04 Desktop&amp;quot; {
    loopback loop /kubuntu-19.04-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz  iso-scan/filename=/kubuntu-19.04-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Ubnuntu 20.04 Server&amp;quot; {
    insmod part_gpt
    insmod ext2
    insmod search_fs_uuid
    rmmod tpm

    search --no-floppy --set=root --fs-uuid 36c1a912-77c7-4cec-8120-c2088e1e131c
    
    set isofile=&amp;quot;/ubuntu-20.04-live-server-amd64.iso&amp;quot;
    set gfxpayload=keep
    
    loopback loop ($root)$isofile

	linux	(loop)/casper/vmlinuz iso-scan/filename=${isofile} quiet ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Ubnuntu 21.10 Server&amp;quot; {
    set gfxpayload=keep
    set isofile=&amp;quot;/ubuntu-21.10-live-server-amd64.iso&amp;quot;
    
    loopback loop ($root)$isofile

	linux	(loop)/casper/vmlinuz iso-scan/filename=${isofile} quiet ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Ubuntu Server 16.04 i386&amp;quot; {
    loopback loop /ubuntu-16.04.6-server-i386.iso
	set gfxpayload=keep
	linux	(loop)/install/vmlinuz isoloop=/ubuntu-16.04.6-server-i386.iso file=/cdrom/preseed/ubuntu-server.seed quiet splash ---
	initrd	(loop)/install/initrd.gz
}

menuentry &amp;#039;Debian 10 i386 Install&amp;#039; {
    set background_color=black
    loopback loop /debian-edu-10.0.0-i386-netinst.iso
    linux    (loop)/install.386/gtk/vmlinuz findiso=/debian-edu-10.0.0-i386-netinst.iso modules=debian-edu-install-udeb desktop=xfce vga=788 --- quiet 
    initrd   (loop)/install.386/gtk/initrd.gz
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0449\u0435_\u043d\u0435\u043c\u043d\u043e\u0433\u043e_\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;8772-11565&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;добавление_других_образов_iso&quot;&gt;Добавление других образов ISO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для добавления других образов ISO нужно в файлик &lt;strong&gt;/boot/grub/grub.cfg&lt;/strong&gt; прописывать параметры, которые обычно можно найти в файлах &lt;strong&gt;grub.cfg&lt;/strong&gt;, &lt;strong&gt;syslinux.cfg&lt;/strong&gt; и других, входящих в состав образа ISO. &lt;br/&gt;

То есть создаем новый раздел меню в &lt;strong&gt;/boot/grub/grub.cfg&lt;/strong&gt; (копируя уже существующий), затем указываем файл ISO в строке &lt;strong&gt;loopback&lt;/strong&gt;, а в строку &lt;strong&gt;linux&lt;/strong&gt; указываем путь к ядру (то что &lt;strong&gt;append&lt;/strong&gt; из &lt;strong&gt;syslinux.cfg&lt;/strong&gt;). В строке &lt;strong&gt;initrd&lt;/strong&gt; указываем путь к файлу &lt;strong&gt;initrd&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Скорее всего, в строке &lt;strong&gt;linux&lt;/strong&gt; после пути к файлу ядра придется указать параметры загрузки ядра, которые позволят ядру работать с loop-устройством, на которое монтируется файл ISO. Для систем со схожим ядром, параметры, как правило, одинаковые. Например, для загрузки &lt;strong&gt;Fedora&lt;/strong&gt; подойдут параметры от &lt;strong&gt;CentOS&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Много обновляемой информации о загрузке ISO образов с помощью GRUB можно тут: &lt;a href=&quot;https://wiki.archlinux.org/index.php/Multiboot_USB_drive&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/index.php/Multiboot_USB_drive&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.archlinux.org/index.php/Multiboot_USB_drive&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0434\u0440\u0443\u0433\u0438\u0445_\u043e\u0431\u0440\u0430\u0437\u043e\u0432_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;11566-13100&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;загрузка_установочных_образов_windows_7_и_windows_10_c_помощью_grub&quot;&gt;Загрузка установочных образов Windows 7 и Windows 10 c помощью GRUB&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Монтируем iso-образ &lt;strong&gt;Windows 7&lt;/strong&gt; или &lt;strong&gt;Windows 10&lt;/strong&gt;, копируем с него все файлы на флешку с помощью &lt;strong&gt;cp&lt;/strong&gt; или &lt;strong&gt;rsync&lt;/strong&gt; и дописываем в &lt;strong&gt;grub.cfg&lt;/strong&gt; такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;set timeout=10
set default=0

menuentry &amp;quot;Windows 7 or Windows 10 installer&amp;quot; --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    search --no-floppy --label MULTIBOOT --set=root
    ntldr /bootmgr
}&lt;/pre&gt;

&lt;p&gt;
Тут &lt;strong&gt;grub&lt;/strong&gt; будет загружать модули с помощью &lt;strong&gt;insmod&lt;/strong&gt;, потом &lt;strong&gt;search&lt;/strong&gt; - искать раздел с меткой &lt;strong&gt;MULTIBOOT&lt;/strong&gt; и когда найдет - с помощью &lt;strong&gt;–set&lt;/strong&gt; укажет, что &lt;strong&gt;root&lt;/strong&gt; находится на этом разделе, а затем передаст управление &lt;strong&gt;/bootmgr&lt;/strong&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
В принципе, для красоты и удобства, было бы неплохо создать отдельный раздел на флешке (так я поступил при создании нового варианта флешки - &lt;a href=&quot;https://wiki.autosys.tk/linux_faq/universal_multiboot_grub_bios_uefi&quot; class=&quot;wikilink1&quot; title=&quot;linux_faq:universal_multiboot_grub_bios_uefi&quot; data-wiki-id=&quot;linux_faq:universal_multiboot_grub_bios_uefi&quot;&gt;Универсальная загрузочная флешка для BIOS/UEFI&lt;/a&gt;), отформатировать его с меткой &lt;strong&gt;Win7&lt;/strong&gt;, распаковать файлы из iso-образа туда и указывать &lt;strong&gt;–label Win7&lt;/strong&gt;. Просто в дистрибутиве &lt;strong&gt;windows&lt;/strong&gt; также есть директоррия &lt;strong&gt;boot&lt;/strong&gt; и если понадобится очистить флешку от инсталлятора &lt;strong&gt;windows&lt;/strong&gt;, не затрагивая остальные ОС, то из этой директории файлы придется удалять вручную.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 Windows 7 \u0438 Windows 10 c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GRUB&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0445_\u043e\u0431\u0440\u0430\u0437\u043e\u0432_windows_7_\u0438_windows_10_c_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;13101-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 11 May 2023 11:22:44 +0000</pubDate>
        </item>
        <item>
            <title>universal_multiboot_grub_bios_uefi</title>
            <link>https://wiki.autosys.tk/linux_faq/universal_multiboot_grub_bios_uefi</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;универсальная_загрузочная_флешка_для_biosuefi&quot;&gt;Универсальная загрузочная флешка для BIOS/UEFI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В один прекрасный момент я стал обладателем машинки, которая загружалась только с помощью &lt;strong&gt;UEFI&lt;/strong&gt;. Переключателя на классический режим загрузки в &lt;strong&gt;BIOS&lt;/strong&gt; не обнаружилось. Загрузиться с моей любимой &lt;a href=&quot;https://wiki.autosys.tk/linux_faq/%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D1%84%D0%BB%D0%B5%D1%88%D0%BA%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_grub&quot; class=&quot;wikilink1&quot; title=&quot;linux_faq:мультизагрузочная_флешка_с_помощью_grub&quot; data-wiki-id=&quot;linux_faq:мультизагрузочная_флешка_с_помощью_grub&quot;&gt;Мультизагрузочной Linux-флешки&lt;/a&gt; оказалось невозможно. Более того - оказалось невозможно загрузиться и с помощью многих других образов, загрузчик в которых не работал с &lt;strong&gt;EFI&lt;/strong&gt;. &lt;br/&gt;

Настало время переделать мультизагрузочную флешку, чтобы она работала на любых системах! &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
По мотивам &lt;a href=&quot;https://wiki.archlinux.org/index.php/Multiboot_USB_drive#Hybrid_UEFI_GPT_.2B_BIOS_GPT.2FMBR_boot&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/index.php/Multiboot_USB_drive#Hybrid_UEFI_GPT_.2B_BIOS_GPT.2FMBR_boot&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.archlinux.org/index.php/Multiboot_USB_drive#Hybrid_UEFI_GPT_.2B_BIOS_GPT.2FMBR_boot&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u0430\u044f \u0444\u043b\u0435\u0448\u043a\u0430 \u0434\u043b\u044f BIOS\/UEFI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f_\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u0430\u044f_\u0444\u043b\u0435\u0448\u043a\u0430_\u0434\u043b\u044f_biosuefi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1138&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;подготовка&quot;&gt;Подготовка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На &lt;strong&gt;Ubuntu&lt;/strong&gt; надо поставить такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo add-apt-repository universe
sudo apt-get install grub-efi-amd64-bin exfat-fuse exfat-utils&lt;/pre&gt;

&lt;p&gt;
или, если exfat-utils в вашем дистрибутиве нет, то:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install grub-efi-amd64-bin exfat-fuse exfatprogs &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1139-1477&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;разметка_флешки&quot;&gt;Разметка флешки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Полностью переразмечаем диск. Создадим четыре раздела.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Раздел с данными, на котором будут лежать ISO-образы и конфигурация &lt;strong&gt;grub&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Раздел 8Gb для распакованного дистрибутива &lt;strong&gt;Windows&lt;/strong&gt; (или образа &lt;strong&gt;WinPE&lt;/strong&gt;).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Загрузочный раздел &lt;strong&gt;EFI&lt;/strong&gt; (размер - 48 Мб).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Загрузочный раздел &lt;strong&gt;BIOS&lt;/strong&gt; (размер 1 Мб).
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre class=&quot;code&quot;&gt;disk=&amp;#039;/dev/sdX&amp;#039;
disk_size=`expr $(sudo sgdisk -p $disk | awk &amp;#039;/Disk \// {print($3)}&amp;#039;)`
sudo sgdisk --zap-all $disk
sudo sgdisk --mbrtogpt --clear $disk
sudo sgdisk --new=1:2048:$(expr $disk_size - 16877568) $disk
sudo sgdisk --typecode=1:0700 $disk
sudo sgdisk --new=2:$(expr $disk_size - 16875520):$(expr $disk_size - 102401) $disk
sudo sgdisk --typecode=2:0700 $disk
sudo sgdisk --new=3:$(expr $disk_size - 102400):$(expr $disk_size - 4097) $disk
sudo sgdisk --typecode=3:EF00 $disk
sudo sgdisk --new=4:$(expr $disk_size - 4096):$(expr $disk_size - 34) $disk
sudo sgdisk --typecode=4:EF02 $disk
sudo sgdisk --attributes=4:set:2 $disk&lt;/pre&gt;

&lt;p&gt;
Отформатируем разделы и смонтируем их. &lt;br/&gt;

Разделы с данными будем форматировать в &lt;strong&gt;NTFS&lt;/strong&gt;. Это позволит работать с флехой из-под &lt;strong&gt;Windows&lt;/strong&gt; и заливать большие файлы (больше 4-х Гб). &lt;br/&gt;

Как ни странно, и &lt;strong&gt;KNOPPIX&lt;/strong&gt; и &lt;strong&gt;SystemRescueCD&lt;/strong&gt; нормально загрузились с помощью образов, размещенных на разделах, отформатированных в &lt;strong&gt;NTFS&lt;/strong&gt;!!! &lt;br/&gt;

Стоит отметить, что при использовании &lt;strong&gt;ntfs-3g&lt;/strong&gt;, запись на разделы отформатированные в &lt;strong&gt;NTFS&lt;/strong&gt; в &lt;strong&gt;Linux&lt;/strong&gt; происходит гораздо медленнее, чем на разделы &lt;strong&gt;FAT32&lt;/strong&gt; или &lt;strong&gt;ExFAT&lt;/strong&gt;. Однако, с этим можно смириться - ведь образы заливаешь один раз, но при этом - сохраняется возможность работать с флехой под виндой и загружаться с больших образов. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkfs.vfat -F 32 ${disk}3
sudo mkfs.ntfs -f ${disk}1
sudo mkfs.ntfs -f ${disk}2

sudo mkdir /mnt/usb_efi
sudo mkdir /mnt/usb_data/

sudo mount  -o async,big_writes,noatime ${disk}1 /mnt/usb_data/
sudo mount ${disk}3 /mnt/usb_efi/&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430_\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1478-4075&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;установка_grub_и_efi&quot;&gt;Установка grub и EFI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;sudo grub-install --target=x86_64-efi --recheck --removable --efi-directory=/mnt/usb_efi/ --boot-directory=/mnt/usb_data/boot-grub ${disk}
sudo grub-install --target=i386-pc --recheck --boot-directory=/mnt/usb_data/boot-grub --force ${disk}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 grub \u0438 EFI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_grub_\u0438_efi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4076-4378&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;grubcfg&quot;&gt;grub.cfg&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ну и дальше настраиваем &lt;strong&gt;grub&lt;/strong&gt;, редактируя файлик &lt;strong&gt;/mnt/usb_data/boot-grub/grub/grub.cfg&lt;/strong&gt;: &lt;br/&gt;

&lt;a href=&quot;http://trcmdisk01.tripod.com/linux/s_mmlf01.html&quot; class=&quot;urlextern&quot; title=&quot;http://trcmdisk01.tripod.com/linux/s_mmlf01.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://trcmdisk01.tripod.com/linux/s_mmlf01.html&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;set gfxmode=auto
insmod all_video

# https://github.com/dwarmstrong/grubs/blob/master/boot/grub/grub.cfg.sample
submenu &amp;quot;Ubuntu -&amp;gt;&amp;quot; {
	set menu_color_normal=white/black
	set menu_color_highlight=white/green

	menuentry &amp;quot;Try or Install Xubnuntu 24.04.01 Minimal&amp;quot; {
		set iso=&amp;quot;/xubuntu-24.04.1-minimal-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux   (loop)/casper/vmlinuz iso-scan/filename=${iso} file=(loop)/cdrom/preseed/xubuntu.seed maybe-ubiquity quiet splash ---
		initrd  (loop)/casper/initrd
	}
	menuentry &amp;quot;Try or Install Kubuntu 24.04.1&amp;quot; {
		set iso=&amp;quot;/kubuntu-24.04.1-desktop-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux	(loop)/casper/vmlinuz  iso-scan/filename=${iso}  --- quiet splash
		initrd	(loop)/casper/initrd
	}
	menuentry &amp;quot;Try or Install Linux Mint 21.3 Cinnamon 64-bit&amp;quot; {
		set iso=&amp;quot;/linuxmint-21.3-cinnamon-64bit.iso&amp;quot;
		loopback loop ${iso}
		linux	(loop)/casper/vmlinuz  iso-scan/filename=${iso} boot=casper username=mint hostname=mint quiet splash --
		initrd	(loop)/casper/initrd.lz
	}
	menuentry &amp;quot;Try or Install Kubnuntu 19.04 Desktop&amp;quot; {
		set iso=&amp;quot;/kubuntu-19.04-desktop-amd64.iso&amp;quot;
		loopback loop ${iso}
		set gfxpayload=keep
		linux	(loop)/casper/vmlinuz  iso-scan/filename=${iso} file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
		initrd	(loop)/casper/initrd
	}
	menuentry &amp;quot;Install Kubnuntu 18.04.1 Desktop&amp;quot; {
		set iso=&amp;quot;/kubuntu-18.04.1-desktop-amd64.iso&amp;quot;
	    	loopback loop ${iso}
		set gfxpayload=keep
		linux	(loop)/casper/vmlinuz  iso-scan/filename=${iso} file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
		initrd	(loop)/casper/initrd
	}
}
submenu &amp;quot;Debian -&amp;gt;&amp;quot; {
	menuentry &amp;quot;Live system (amd64)&amp;quot; --hotkey=l {
		set iso=&amp;quot;/debian-live-12.9.0-amd64-xfce.iso&amp;quot;
		loopback loop ${iso}
		linux	(loop)/live/vmlinuz-6.1.0-29-amd64 boot=live components quiet splash iso-scan/filename=${iso} findiso=${iso}
		initrd	(loop)/live/initrd.img-6.1.0-29-amd64
	}
	menuentry &amp;quot;Live system (amd64 fail-safe mode) ????&amp;quot; {
		set iso=&amp;quot;/debian-live-12.9.0-amd64-xfce.iso&amp;quot;
		loopback loop ${iso}
		linux	(loop)/live/vmlinuz-6.1.0-29-amd64 boot=live components memtest noapic noapm nodma nomce nosmp nosplash vga=788 iso-scan/filename=${iso} findiso=${iso}
		initrd	(loop)/live/initrd.img-6.1.0-29-amd64
	}
	menuentry &amp;#039;Start Debian 12.9.0 installer&amp;#039; {
		set iso=&amp;quot;/debian-live-12.9.0-amd64-xfce.iso&amp;quot;
		loopback loop ${iso}
		linux	(loop)/install/gtk/vmlinuz iso-scan/filename=${iso} vga=788  --- quiet
		initrd	(loop)/install/gtk/initrd.gz
	}
	menuentry &amp;#039;Debian 12.9.0 i386 Graphical install&amp;#039; {
		set iso=&amp;quot;/debian-12.9.0-i386-DVD-1.iso&amp;quot;
		loopback loop ${iso}
		set background_color=black
		linux    (loop)/install.386/vmlinuz iso-scan/filename=${iso} vga=788 --- quiet 
		initrd   (loop)/install.386/gtk/initrd.gz
	}
}
submenu &amp;quot;KNOPPIX -&amp;gt;&amp;quot; {
	set menu_color_normal=white/black
	set menu_color_highlight=white/green
	menuentry &amp;quot;KNOPPIX_V9.1DVD-2021-01-25-EN LiveCD 64-bit Linux Kernel v.5.10.10&amp;quot; {
		set iso=&amp;quot;/KNOPPIX_V9.1DVD-2021-01-25-EN.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/boot/isolinux/linux64 bootfrom=${iso} keyboard=us language-us
		initrd (loop)/boot/isolinux/minirt.gz
	}
	menuentry &amp;quot;KNOPPIX_V8.6.1-2019-10-14-EN LiveCD 32-bit Linux Kernel v5.3.5&amp;quot; {
		set iso=&amp;quot;/KNOPPIX_V8.6.1-2019-10-14-EN.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/boot/isolinux/linux bootfrom=${iso} keyboard=us language-us
		initrd (loop)/boot/isolinux/minirt.gz
	}
	menuentry &amp;quot;KNOPPIX_V7.2.0CD-2013-06-16-EN LiveCD NOT WORKING. Kernel panic. No init found. Try passing init= option to kernel&amp;quot; {
		set iso=&amp;quot;/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/boot/isolinux/linux bootfrom=${iso} keyboard=us language-us
		initrd (loop)/boot/isolinux/minirt.gz
	}
}
submenu &amp;quot;SystemRescueCD -&amp;gt;&amp;quot; {
	set menu_color_normal=white/black
	set menu_color_highlight=white/green
	menuentry &amp;#039;Boot SystemRescue 11.03 using default options&amp;#039; {
		set gfxpayload=keep
		probe --set devuuid --fs-uuid (hd0,gpt1)
		set iso=&amp;quot;/systemrescue-11.03-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd img_dev=/dev/disk/by-uuid/${devuuid} img_loop=${iso} iomem=relaxed 
		initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
	}

	menuentry &amp;#039;Boot SystemRescue 11.03 and copy system to RAM (copytoram)&amp;#039; {
		set gfxpayload=keep
		probe --set devuuid --fs-uuid (hd0,gpt1)
		set iso=&amp;quot;/systemrescue-11.03-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd iomem=relaxed img_dev=/dev/disk/by-uuid/${devuuid} img_loop=${iso} copytoram
		initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img 
	}

	menuentry &amp;#039;Boot SystemRescue 11.03 using basic display drivers (nomodeset)&amp;#039; {
		set gfxpayload=keep
		probe --set devuuid --fs-uuid (hd0,gpt1)
		set iso=&amp;quot;/systemrescue-11.03-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd img_dev=/dev/disk/by-uuid/${devuuid} img_loop=${iso} iomem=relaxed nomodeset
		initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
	}
	menuentry &amp;quot;SystemRescueCD 5.3.1 Live, linux kernel v.4.14 (64bit, cache all files in memory and startX) wont start X on AMD Ryzen 4000 series. Shell seems to work.&amp;quot; {
		set iso=&amp;quot;/systemrescuecd-x86-5.3.1.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/isolinux/rescue64 isoloop=${iso} setkmap=us docache dostartx nomodeset
		initrd (loop)/isolinux/initram.igz
	}
	menuentry &amp;quot;SystemRescueCD 5.3.1 Live (64bit, default boot options)&amp;quot; {
		set iso=&amp;quot;/systemrescuecd-x86-5.3.1.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/isolinux/rescue64 isoloop=${iso} setkmap=us nomodeset
		initrd (loop)/isolinux/initram.igz
	}
	menuentry &amp;quot;SystemRescueCd 5.3.1 Live (32bit, default boot options)&amp;quot; {
		set iso=&amp;quot;/systemrescuecd-x86-5.3.1.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/isolinux/rescue32 isoloop=${iso} setkmap=us docache nomodeset
		initrd (loop)/isolinux/initram.igz
	}
}
submenu &amp;quot;Windows -&amp;gt;&amp;quot; {
	set menu_color_normal=white/black
	set menu_color_highlight=white/green
	menuentry &amp;quot;Windows 10 Installer&amp;quot; {
		insmod ntfs
		search --set=root --file /bootmgr
		ntldr /bootmgr
		boot
	}

	menuentry &amp;quot;Windows 7 or Windows 10 installer&amp;quot; --class windows --class os {
		insmod part_msdos
		insmod ntfs
		insmod ntldr
		search --no-floppy --file /bootmgr --set=root
		ntldr /bootmgr
		boot
	}
}
submenu &amp;#039;Utilities...&amp;#039; {
	menuentry &amp;#039;Memtest86+ memory tester for UEFI from SystemRescueCD 11.03&amp;#039; {
		insmod fat
		set gfxpayload=800x600,1024x768
		set iso=&amp;quot;/systemrescue-11.03-amd64.iso&amp;quot;
		loopback loop ${iso}
		linux (loop)/EFI/memtest.efi keyboard=both
	}
	menuentry &amp;quot;Memtest 86+ (from Kubnuntu 24.04.1)&amp;quot; {
		loopback loop /kubuntu-24.04.1-desktop-amd64.iso
		set gfxpayload=keep
		linux16	(loop)/boot/memtest86+x64.bin
	}
	menuentry &amp;#039;Start EFI Shell&amp;#039; {
		insmod fat
		insmod chain
		terminal_output console
		set iso=&amp;quot;/systemrescue-11.03-amd64.iso&amp;quot;
		loopback loop ${iso}
		chainloader (loop)/EFI/shell.efi
	}
}&lt;/pre&gt;

&lt;p&gt;
ну и старая версия
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;if [ x$feature_all_video_module = xy ]; then
    insmod all_video
else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
fi

menuentry &amp;quot;Install Kubnuntu 21.04 Desktop&amp;quot; {
    loopback loop /kubuntu-21.04-desktop-amd64.iso
    set gfxpayload=keep
    linux	(loop)/casper/vmlinuz  iso-scan/filename=/kubuntu-21.04-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed maybe-ubiquity quiet splash ---
    initrd	(loop)/casper/initrd
}

menuentry &amp;quot;KNOPPIX_V8.2-2018-05-10-EN LiveCD&amp;quot; {
loopback loop /KNOPPIX_V8.2-2018-05-10-EN.iso
linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V8.2-2018-05-10-EN.iso keyboard=us language-us
initrd (loop)/boot/isolinux/minirt.gz
}

menuentry &amp;quot;KNOPPIX_V7.2.0CD-2013-06-16-EN LiveCD&amp;quot; {
loopback loop /KNOPPIX_V7.2.0CD-2013-06-16-EN.iso
linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso keyboard=us language-us
initrd (loop)/boot/isolinux/minirt.gz
}

menuentry &amp;quot;SystemRescueCd 5.3.1 Live (64bit, cache all files in memory and startX)&amp;quot; {
 loopback loop /systemrescuecd-x86-5.3.1.iso
 linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd-x86-5.3.1.iso setkmap=us docache dostartx
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;SystemRescueCd 5.3.1 Live (64bit, default boot options)&amp;quot; {
 loopback loop /systemrescuecd-x86-5.3.1.iso
 linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd-x86-5.3.1.iso setkmap=us
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;SystemRescueCd 5.3.1 Live (32bit, default boot options)&amp;quot; {
 loopback loop /systemrescuecd-x86-5.3.1.iso
 linux (loop)/isolinux/rescue32 isoloop=/systemrescuecd-x86-5.3.1.iso setkmap=us
 initrd (loop)/isolinux/initram.igz
}

menuentry &amp;quot;Install Kubnuntu 18.04.1 Desktop&amp;quot; {
    loopback loop /kubuntu-18.04.1-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz  iso-scan/filename=/kubuntu-18.04.1-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Kubnuntu 18.04.2 Server&amp;quot; {
    set isofile=&amp;quot;/ubuntu-18.04.2-live-server-amd64.iso&amp;quot;
    loopback loop $isofile
    linux (loop)/casper/vmlinuz iso-scan/filename=$isofile boot=casper quiet ---
    initrd (loop)/casper/initrd
}

menuentry &amp;quot;Install Kubnuntu 19.04 Desktop&amp;quot; {
    loopback loop /kubuntu-19.04-desktop-amd64.iso
	set gfxpayload=keep
	linux	(loop)/casper/vmlinuz  iso-scan/filename=/kubuntu-19.04-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Ubnuntu 20.04 Server&amp;quot; {
    insmod part_gpt
    insmod ext2
    insmod search_fs_uuid
    rmmod tpm

    search --no-floppy --set=root --fs-uuid 36c1a912-77c7-4cec-8120-c2088e1e131c
    
    set isofile=&amp;quot;/ubuntu-20.04-live-server-amd64.iso&amp;quot;
    set gfxpayload=keep
    
    loopback loop ($root)$isofile

	linux	(loop)/casper/vmlinuz iso-scan/filename=${isofile} quiet ---
	initrd	(loop)/casper/initrd
}

menuentry &amp;quot;Install Ubuntu Server 16.04 i386&amp;quot; {
    loopback loop /ubuntu-16.04.6-server-i386.iso
	set gfxpayload=keep
	linux	(loop)/install/vmlinuz isoloop=/ubuntu-16.04.6-server-i386.iso file=/cdrom/preseed/ubuntu-server.seed quiet splash ---
	initrd	(loop)/install/initrd.gz
}

menuentry &amp;quot;Install Ubuntu Server 16.04 x64&amp;quot; {
    loopback loop /ubuntu-16.04.6-server-amd64.iso
	set gfxpayload=keep
	linux	(loop)/install/vmlinuz iso-scan/filename=/ubuntu-16.04.6-server-amd64.iso file=/cdrom/preseed/ubuntu-server.seed quiet splash ---
	initrd	(loop)/install/initrd.gz
}

menuentry &amp;#039;Debian 10 i386 Install&amp;#039; {
    set background_color=black
    loopback loop /debian-edu-10.0.0-i386-netinst.iso
    linux    (loop)/install.386/gtk/vmlinuz findiso=/debian-edu-10.0.0-i386-netinst.iso modules=debian-edu-install-udeb desktop=xfce vga=788 --- quiet 
    initrd   (loop)/install.386/gtk/initrd.gz
}

menuentry &amp;quot;Memtest 86+ (from Kubnuntu 19.04)&amp;quot; {
    loopback loop /kubuntu-19.04-desktop-amd64.iso
	set gfxpayload=keep
	linux16	(loop)/install/mt86plus
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;grub.cfg&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;grubcfg&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4379-15955&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;загрузка_образов_дискет_freedos_memtest_mhdd_etc&quot;&gt;Загрузка образов дискет (FreeDOS, MemTest, MHDD, etc...)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В образе &lt;strong&gt;SystemRescueCD&lt;/strong&gt; в папке &lt;strong&gt;/bootdisk&lt;/strong&gt; есть образы дискет &lt;strong&gt;DOS&lt;/strong&gt; с разными утилитами. Пока что мне не удалось запустить ни один из таких образов. Однако, известно, что для их запуска используется утилита &lt;a href=&quot;https://www.syslinux.org/wiki/index.php?title=MEMDISK&quot; class=&quot;urlextern&quot; title=&quot;https://www.syslinux.org/wiki/index.php?title=MEMDISK&quot; rel=&quot;ugc nofollow&quot;&gt;memdisk&lt;/a&gt;, которая лежит в папке &lt;strong&gt;/isolinux&lt;/strong&gt;. &lt;br/&gt;

Немного информации есть тут: &lt;a href=&quot;https://www.linux.org.ru/forum/general/9653654&quot; class=&quot;urlextern&quot; title=&quot;https://www.linux.org.ru/forum/general/9653654&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.linux.org.ru/forum/general/9653654&lt;/a&gt; &lt;br/&gt;

Общий принцип - в качестве ядра указывается &lt;strong&gt;memdisk&lt;/strong&gt;, а в качестве &lt;strong&gt;initrd&lt;/strong&gt; - образ дискеты
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;linux16 (loop)/isolinux/memdisk
initrd16 (loop)/isolinux/fdboot.img&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u0435\u0442 (FreeDOS, MemTest, MHDD, etc...)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u043e\u0431\u0440\u0430\u0437\u043e\u0432_\u0434\u0438\u0441\u043a\u0435\u0442_freedos_memtest_mhdd_etc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;15956-16870&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit7&quot; id=&quot;установка_windows_с_такой_uefi-флешки&quot;&gt;Установка Windows с такой UEFI-флешки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После копирования файлов iso-образа на раздел:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;rsync -av /mnt/cdrom/ /mnt/flash/&lt;/pre&gt;

&lt;p&gt;
Выяснилось, что стандартный способ загрузки Windows из &lt;strong&gt;grub&lt;/strong&gt; на такой флешке не работает! &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;menuentry &amp;quot;Windows 10 Installer&amp;quot; {
    insmod ntfs
    search --set=root --file /bootmgr
    ntldr /bootmgr
    boot
}&lt;/pre&gt;

&lt;p&gt;
Оказалось, что &lt;strong&gt;bootmgr&lt;/strong&gt;, используемый для загрузки компьютеров с &lt;strong&gt;BIOS&lt;/strong&gt; не загружается с &lt;strong&gt;GPT&lt;/strong&gt;-разделов.  С &lt;strong&gt;GPT&lt;/strong&gt;-разделов может загружаться только &lt;strong&gt;bootx64.efi&lt;/strong&gt;, для работы которого нужен &lt;strong&gt;EFI&lt;/strong&gt;. &lt;br/&gt;

Если попытаться загрузить &lt;strong&gt;bootmgr&lt;/strong&gt; с такой флешки, то комп просто перезагрузится. Без всяких сообщений. &lt;br/&gt;

Вариантов загрузки &lt;strong&gt;Windows&lt;/strong&gt; на &lt;strong&gt;BIOS&lt;/strong&gt;-компьютере с &lt;strong&gt;GPT&lt;/strong&gt;-диском несколько. &lt;br/&gt;

Первый - &lt;strong&gt;DUET&lt;/strong&gt; (Developer’s UEFI Environment). В этом случае, сначала загружается эмулятор &lt;strong&gt;EFI&lt;/strong&gt;, который загружает &lt;strong&gt;bootx64.efi&lt;/strong&gt;. &lt;br/&gt;

Второй - использование режима &lt;strong&gt;hybrid MBR&lt;/strong&gt;. Это можно сделать утилитой &lt;strong&gt;gdisk&lt;/strong&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Windows \u0441 \u0442\u0430\u043a\u043e\u0439 UEFI-\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_windows_\u0441_\u0442\u0430\u043a\u043e\u0439_uefi-\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;16871-18341&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;hybrid_mbr_-_гибридный_mbr&quot;&gt;Hybrid MBR - гибридный MBR&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.rodsbooks.com/gdisk/hybrid.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.rodsbooks.com/gdisk/hybrid.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.rodsbooks.com/gdisk/hybrid.html&lt;/a&gt; &lt;br/&gt;

Обычный &lt;strong&gt;GPT&lt;/strong&gt;-диск имеет запись &lt;strong&gt;MBR&lt;/strong&gt; с единственным разделом типа &lt;strong&gt;0xEE (EFI GPT)&lt;/strong&gt;, внутри которого размещаются разделы &lt;strong&gt;GPT&lt;/strong&gt;. &lt;br/&gt;

Гибридный &lt;strong&gt;MBR&lt;/strong&gt;, помимо основного раздела типа &lt;strong&gt;0xEE (EFI GPT)&lt;/strong&gt; может содержать сведения о дополнительных (до трех штук) разделах, границы которых совпадают с границами разделов, описанных в &lt;strong&gt;GPT&lt;/strong&gt;. &lt;br/&gt;

Таким образом, операционки и утилиты, которые не знают ничего про &lt;strong&gt;GPT&lt;/strong&gt; смогут работать и с &lt;strong&gt;GPT&lt;/strong&gt;-разделов. Просто сведения о них они будут получать из &lt;strong&gt;MBR&lt;/strong&gt;. &lt;br/&gt;

Очень важно, не давать таким утилитам и операционкам изменять таблицу разделов. В противном случае - они просто порушат &lt;strong&gt;GPT&lt;/strong&gt;. &lt;br/&gt;

Такая конфигурация не описана стандартами и разные ОС обрабатывают её по разному. Поведение различных ОС при встрече с таким чудом &lt;a href=&quot;https://www.rodsbooks.com/gdisk/hybrid.html#reactions&quot; class=&quot;urlextern&quot; title=&quot;https://www.rodsbooks.com/gdisk/hybrid.html#reactions&quot; rel=&quot;ugc nofollow&quot;&gt;описано тут&lt;/a&gt;. &lt;br/&gt;

Запускаем &lt;strong&gt;gdisk&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo gdisk $disk&lt;/pre&gt;

&lt;p&gt;
Переходим в &lt;strong&gt;Recovery/transformation&lt;/strong&gt; меню:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;r&lt;/pre&gt;

&lt;p&gt;
Теперь создаем гибридную запись &lt;strong&gt;MBR&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;h&lt;/pre&gt;

&lt;p&gt;
Программа спросит - какие разделы должны быть добавлены в таблицу разделов гибридной записи вводим их номера через пробел:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence:1 2 3 4&lt;/pre&gt;

&lt;p&gt;
Дальше - система спросит хотим ли мы разместить первой таблицу &lt;strong&gt;EFI&lt;/strong&gt;, чтобы работал &lt;strong&gt;GRUB&lt;/strong&gt;. Отвечаем &lt;strong&gt;yes&lt;/strong&gt;. &lt;br/&gt;

А также - какие коды типов присвоить разделам гибридной таблицы и делать ли их загрузочными. &lt;br/&gt;

Загрузочной делаем только 4-ю партицию. &lt;br/&gt;

Записываем изменения &lt;strong&gt;w&lt;/strong&gt;. &lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
В двух словах - диск с гибридизированными разделами нельзя модифицировать утилитами, которые к этому не готовы (fdisk).   
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hybrid MBR - \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 MBR&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hybrid_mbr_-_\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439_mbr&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;18342-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 16 Jan 2025 20:38:58 +0000</pubDate>
        </item>
        <item>
            <title>centos_7_minimal_sssd_setup_script</title>
            <link>https://wiki.autosys.tk/linux_faq/centos_7_minimal_sssd_setup_script</link>
            <description>&lt;pre class=&quot;code&quot;&gt;#! /bin/bash

####################################
#### Variables
####################################
NEW_HOSTNAME=&amp;quot;centos-01&amp;quot;
NEW_DOMAINNAME=&amp;quot;test.com&amp;quot;
DNS_SERVERS=&amp;quot;192.168.246.130&amp;quot;
DNS_STATIC_SEARCHLIST=&amp;quot;$NEW_DOMAINNAME&amp;quot;
AD_USER=&amp;quot;usik-ma&amp;quot;
DOMAIN_CONTROLLERS=$(cat &amp;lt;&amp;lt;EOF
dc01.test.com
dc02.test.com
EOF
)
DEFAULT_REALM=&amp;quot;${NEW_DOMAINNAME^^}&amp;quot;
NETBIOS_DOMAIN_NAME=$(echo $DEFAULT_REALM | sed  &amp;#039;1,$ s/\..*//g&amp;#039;)
CA_CERT_PREFIX=&amp;quot;SberBank_Root_CA&amp;quot;

##############################################
### Disable IPv6
##############################################
cp /etc/sysctl.conf /etc/sysctl.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
sed -i &amp;#039;/^net.ipv6.conf/D&amp;#039; /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.all.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.default.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.lo.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
sysctl -p
dhclient

##############################################
### Setting up Network
##############################################
hostnamectl set-hostname $NEW_HOSTNAME.$NEW_DOMAINNAME
sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
echo &amp;quot;127.0.0.1 $NEW_HOSTNAME.$NEW_DOMAINNAME $NEW_HOSTNAME localhost.localdomain localhost&amp;quot; | sudo tee -a /etc/hosts

echo &amp;quot;NETWORKING=yes&amp;quot; | sudo tee /etc/sysconfig/network
echo &amp;quot;HOSTNAME=$NEW_HOSTNAME.$NEW_DOMAINNAME&amp;quot; | sudo tee -a /etc/sysconfig/network
echo &amp;quot;SEARCH=$DNS_STATIC_SEARCHLIST&amp;quot; | sudo tee -a /etc/sysconfig/network

dnsnumber=1
for nameserver in $DNS_SERVERS; do
echo &amp;quot;DNS$dnsnumber=$nameserver&amp;quot; | sudo tee -a /etc/sysconfig/network
let &amp;quot;dnsnumber = dnsnumber + 1&amp;quot;
done

CONNECTIONS=$(nmcli -t -f NAME connection show)
for connection in $CONNECTIONS; do
nmcli con mod $connection connection.autoconnect yes
nmcli con mod $connection ipv4.dns-search $DNS_STATIC_SEARCHLIST
nmcli con mod $connection ipv4.ignore-auto-dns yes
sudo nmcli c modify $connection ipv4.dns &amp;#039;&amp;#039;
  for nameserver in $DNS_SERVERS; do
    nmcli c modify $connection +ipv4.dns $nameserver
  done
nmcli c down $connection
nmcli c up $connection
done
echo &amp;quot;Waiting for network...&amp;quot;
sleep 10

###########################################
### Add Corporate IronPort Certificates
###########################################
update-ca-trust force-enable
echo &amp;quot;Trying to reach ya.ru...&amp;quot;
ping -c 5 ya.ru &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;amp; openssl s_client -showcerts -connect ya.ru:443 &amp;lt;/dev/null &amp;gt; chain.pem || exit
csplit -k -f $CA_CERT_PREFIX ./chain.pem &amp;#039;/END CERTIFICATE/+1&amp;#039; {10}
find ./ -iname $CA_CERT_PREFIX\* -type f -exec grep -F -L &amp;#039;END CERTIFICATE&amp;#039; &amp;#039;{}&amp;#039; + | xargs -d &amp;#039;\n&amp;#039; rm
for file in &amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo mv &amp;quot;$file&amp;quot; /etc/pki/ca-trust/source/anchors/&amp;quot;$file&amp;quot;.pem ; done
for file in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo cp &amp;quot;$file&amp;quot; /etc/ssl/certs/ ; done
update-ca-trust extract
rm -f ./chain.pem

####################################
#### Setup Software
####################################
yum -y update
yum -y install chrony nano yum-utils openssl
yum -y install realmd oddjob oddjob-mkhomedir sssd adcli samba-common-tools
yum -y groupinstall &amp;quot;X Window System&amp;quot; &amp;quot;Fonts&amp;quot; kde-desktop
yum -y groupinstall &amp;quot;Internet Browser&amp;quot; &amp;quot;Office Suite and Productivity&amp;quot;
#yum -y groupinstall &amp;quot;Graphical Administration Tools&amp;quot; &amp;quot;General Purpose Desktop&amp;quot; &amp;quot;Graphics Creation Tools&amp;quot;
systemctl set-default graphical.target
systemctl disable initial-setup-text
systemctl disable initial-setup-graphical

yum -y install --nogpgcheck  https://repo.yandex.ru/yandex-browser/rpm/beta/x86_64/yandex-browser-beta-17.1.1.773-1.x86_64.rpm
yum -y install --nogpgcheck https://tel.red/repos/redhat/7/noarch/telred-redhat-7-latest.el7.noarch.rpm
yum -y install --nogpgcheck http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TELRED

yum -y update

yum -y install xorg-x11-server-Xvfb evolution evolution-ews evolution-plugins \
clamav yandex-browser-beta flash-plugin alsa-plugins-pulseaudio libcurl sky

#############################################
#### Setting sudo
#############################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/domain_users
localuser       ALL=(ALL) ALL
%domain\ users\@$NEW_DOMAINNAME          ALL=(ALL) ALL
%domain\ users          ALL=(ALL) ALL
%domain\ admins\@$NEW_DOMAINNAME      ALL=(ALL) NOPASSWD: ALL
%domain\ admins      ALL=(ALL) NOPASSWD: ALL
EOF

sed -i &amp;quot;/^Defaults\ targetpw.*\$/ s/^/#/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^Defaults\ env_reset.*\$/ s/\ env_reset/\ \!env_reset/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^ALL.*ALL=(ALL).*\$/ s/^/#/&amp;quot; /etc/sudoers

#########################################
### Setup NTP servers
#########################################
sudo systemctl start chronyd.service
sed -i &amp;quot;/^pool.*\$/ s/^/#/&amp;quot; /etc/chrony.conf
sed -i &amp;quot;/^server.*\$/ s/^/#/&amp;quot; /etc/chrony.conf

for dc in $DOMAIN_CONTROLLERS;
do
echo &amp;quot;server $dc iburst&amp;quot; | sudo tee -a /etc/chrony.conf
done
sudo systemctl restart chronyd.service

########################################################
#### Setup Kerberos and Samba
########################################################
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
mv /etc/krb5.conf /etc/krb5.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`

authconfig --smbsecurity=ads --smbworkgroup=$NETBIOS_DOMAIN_NAME \
--smbrealm=$DEFAULT_REALM --krb5realm=$DEFAULT_REALM \
--krb5kdc=$(echo $DOMAIN_CONTROLLERS | sed &amp;quot;s/\ /,/g&amp;quot;) --enablekrb5kdcdns \
--enablekrb5realmdns --update

sed -i &amp;quot;/^.*kerberos method =.*\$/ s/=.*$/= secrets and keytab/&amp;quot; /etc/samba/smb.conf
sed -i &amp;quot;/^.*template shell =.*\$/ s/=.*$/= \/bin\/bash/&amp;quot; /etc/samba/smb.conf
sed -i &amp;quot;/^.*winbind offline logon =.*\$/ s/=.*$/= yes/&amp;quot; /etc/samba/smb.conf
sed -i &amp;quot;/^.*winbind use default domain =.*\$/ s/=.*$/= yes/&amp;quot; /etc/samba/smb.conf

cat &amp;lt;&amp;lt;EOF &amp;gt;&amp;gt; /etc/samba/smb.conf

usershare max shares = 100
winbind refresh tickets = yes
encrypt passwords = yes

EOF

############################################################
### Enable Autostart apps
############################################################
mkdir --parents /etc/skel/.config/autostart/
cp /usr/share/applications/sky.desktop /etc/skel/.config/autostart/

#######################################################                                                                                                                                        
#### Import CA Certificates into Browsers                                                                                                                                                      
#   http://blog.xelnor.net/firefox-systemcerts/                                                                                                                                                
#######################################################                                                                                                                                        
HOMEDIR=$(getent passwd $SUDO_USER | cut -d: -f6)                                                                                                                                                                                                                                                                                                   
rm -Rf $HOMEDIR/.mozilla                                                                                                                                                                  
rm -Rf $HOMEDIR/.pki                                                                                                                                                                      
                                                                                                                                                                                               
########################################################                                                                                                                                       
#### Create and fill cert8.db in Firefox Profile                                                                                                                                               
########################################################                                                                                                                                       
killall firefox                                                                                                                                                                           
sudo -u  $SUDO_USER xvfb-run --server-args=&amp;quot;-screen 0, 1280x1024x24&amp;quot; firefox -CreateProfile default
FirefoxProfileDir=$(find $HOMEDIR&amp;#039;/.mozilla/firefox/&amp;#039; -iname &amp;#039;*.default&amp;#039;);
for certificateFile in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d ${FirefoxProfileDir}
done
chmod -R a+rw $HOMEDIR/.mozilla/firefox/*

################################################################################
#### Import certificates into nssdb for Chromium engine
################################################################################
mkdir --parents $HOMEDIR/.pki/nssdb
echo 1q2w3e4r | sudo tee $HOMEDIR/.pki/nssdb/password-file
certutil -N -f $HOMEDIR/.pki/nssdb/password-file -d $HOMEDIR/.pki/nssdb
for certificateFile in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -f $HOMEDIR/.pki/nssdb/password-file -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d sql:$HOMEDIR/.pki/nssdb
done
chmod -R a+rw $HOMEDIR/.pki/nssdb/*

#########################################################
### Copy databases with imported certs to default profile
#########################################################
rm -Rf /etc/skel/.pki/nssdb/*
rm -Rf /etc/skel/.mozilla/firefox/*
mkdir --parents /etc/skel/.pki/nssdb/
cp -Rf $HOMEDIR/.pki/nssdb/* /etc/skel/.pki/nssdb/
mkdir --parents /etc/skel/.mozilla/firefox/
cp -Rf $HOMEDIR/.mozilla/firefox/* /etc/skel/.mozilla/firefox/

#########################################################
### Disable KDEWallet By Default
#########################################################
mkdir --parents /etc/skel/.config/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kwalletrc
[Wallet]
Enabled=false
EOF

mkdir --parents /etc/skel/.kde/share/config/
cp /etc/skel/.config/kwalletrc /etc/skel/.kde/share/config/kwalletrc

#################################################################
#### Add Launchers
#################################################################
#mkdir --parents /etc/skel/.kde/share/config/
#
#cat &amp;lt;&amp;lt;EOF &amp;gt; /ets/skel/.kde/share/config/plasma-desktop-appletsrc
#[Containments][1][Applets][5][Configuration][Launchers]
#Items=file:///opt/yandex/browser-beta/yandex_browser?wmClass=yandex-browser-beta%20%28%2Fhome%2Fmike%40test.com%2F.config%2Fyandex-browser-beta%29,file:///usr/share/applications/sky.desktop?wmClass=Sky,file:///usr/share/applications/kde4/konsole.desktop?wmClass=Konsole,file:///usr/share/applications/evolution.desktop?wmClass=Evolution
#EOF

##############################################
#### Join domain using SSSD
##############################################
#realm join -U $AD_USER $NEW_DOMAINNAME
&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;setup_citrix_vda&quot;&gt;Setup Citrix VDA&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
service postgresql initdb
CTX_XDL_SUPPORT_DDC_AS_CNAME=N \
CTX_XDL_DDC_LIST=&amp;quot;v-szud-ctxdc-01.sigma.sbrf.ru v-szud-ctxdc-02.sigma.sbrf.ru&amp;quot; \
CTX_XDL_VDA_PORT=80 \
CTX_XDL_REGISTER_SERVICE=Y \
CTX_XDL_ADD_FIREWALL_RULES=Y \
CTX_XDL_AD_INTEGRATION=4 \
CTX_XDL_HDX_3D_PRO=N \
CTX_XDL_VDI_MODE=Y \
CTX_XDL_SITE_NAME=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_LDAP_LIST=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_SEARCH_BASE=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_START_SERVICE=Y \
/opt/Citrix/VDA/sbin/ctxsetup.sh&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setup Citrix VDA&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setup_citrix_vda&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11297-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>centos_7_minimal_winbind_setup_script</title>
            <link>https://wiki.autosys.tk/linux_faq/centos_7_minimal_winbind_setup_script</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;script&quot;&gt;Script&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/bash

####################################
#### Variables
####################################
NEW_HOSTNAME=&amp;quot;centos-01&amp;quot;
NEW_DOMAINNAME=&amp;quot;test.com&amp;quot;
DNS_SERVERS=&amp;quot;192.168.246.130&amp;quot;
DNS_STATIC_SEARCHLIST=&amp;quot;$NEW_DOMAINNAME&amp;quot;
AD_USER=&amp;quot;usik-ma&amp;quot;
DOMAIN_CONTROLLERS=$(cat &amp;lt;&amp;lt;EOF
dc01.test.com
dc02.test.com
EOF
)
DEFAULT_REALM=&amp;quot;${NEW_DOMAINNAME^^}&amp;quot;
NETBIOS_DOMAIN_NAME=$(echo $DEFAULT_REALM | sed  &amp;#039;1,$ s/\..*//g&amp;#039;)
CA_CERT_PREFIX=&amp;quot;SberBank_Root_CA&amp;quot;

##############################################
### Disable IPv6
##############################################
cp /etc/sysctl.conf /etc/sysctl.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
sed -i &amp;#039;/^net.ipv6.conf/D&amp;#039; /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.all.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.default.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
echo &amp;#039;net.ipv6.conf.lo.disable_ipv6 = 1&amp;#039; | sudo tee -a /etc/sysctl.conf
sysctl -p
dhclient

##############################################
### Setting up Network
##############################################
hostnamectl set-hostname $NEW_HOSTNAME.$NEW_DOMAINNAME
sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
sed -i &amp;#039;/^::1/D&amp;#039; /etc/hosts
echo &amp;quot;127.0.0.1 $NEW_HOSTNAME.$NEW_DOMAINNAME $NEW_HOSTNAME localhost.localdomain localhost&amp;quot; | sudo tee -a /etc/hosts

echo &amp;quot;NETWORKING=yes&amp;quot; | sudo tee /etc/sysconfig/network
echo &amp;quot;HOSTNAME=$NEW_HOSTNAME&amp;quot; | sudo tee -a /etc/sysconfig/network
echo &amp;quot;SEARCH=$DNS_STATIC_SEARCHLIST&amp;quot; | sudo tee -a /etc/sysconfig/network

dnsnumber=1
for nameserver in $DNS_SERVERS; do
echo &amp;quot;DNS$dnsnumber=$nameserver&amp;quot; | sudo tee -a /etc/sysconfig/network
let &amp;quot;dnsnumber = dnsnumber + 1&amp;quot;
done

CONNECTIONS=$(nmcli -t -f NAME connection show)
for connection in $CONNECTIONS; do
nmcli con mod $connection connection.autoconnect yes
nmcli con mod $connection ipv4.dns-search $DNS_STATIC_SEARCHLIST
nmcli con mod $connection ipv4.ignore-auto-dns yes
sudo nmcli c modify $connection ipv4.dns &amp;#039;&amp;#039;
  for nameserver in $DNS_SERVERS; do
    nmcli c modify $connection +ipv4.dns $nameserver
  done
nmcli c down $connection
nmcli c up $connection
done
echo &amp;quot;Waiting for network...&amp;quot;
sleep 10

echo &amp;quot;$NEW_HOSTNAME&amp;quot; | sudo tee /etc/hostname

###########################################
### Add Corporate IronPort Certificates
###########################################
update-ca-trust force-enable
echo &amp;quot;Trying to reach ya.ru...&amp;quot;
ping -c 5 ya.ru &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;amp; openssl s_client -showcerts -connect ya.ru:443 &amp;lt;/dev/null &amp;gt; chain.pem || exit
csplit -k -f $CA_CERT_PREFIX ./chain.pem &amp;#039;/END CERTIFICATE/+1&amp;#039; {10}
find ./ -iname $CA_CERT_PREFIX\* -type f -exec grep -F -L &amp;#039;END CERTIFICATE&amp;#039; &amp;#039;{}&amp;#039; + | xargs -d &amp;#039;\n&amp;#039; rm
for file in &amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo mv &amp;quot;$file&amp;quot; /etc/pki/ca-trust/source/anchors/&amp;quot;$file&amp;quot;.pem ; done
for file in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo cp &amp;quot;$file&amp;quot; /etc/ssl/certs/ ; done
update-ca-trust extract
rm -f ./chain.pem

####################################
#### Setup Software
####################################
yum -y update
yum -y install chrony nano yum-utils openssl
yum -y install samba samba-winbind* authconfig samba-common-tools net-tools \
pam_krb5 bind-utils samba-winbind samba-winbind-clients krb5-workstation \
oddjob-mkhomedir
yum -y install cyrus-sasl cyrus-sasl-gssapi
yum -y groupinstall &amp;quot;X Window System&amp;quot; &amp;quot;Fonts&amp;quot; kde-desktop
yum -y groupinstall &amp;quot;Internet Browser&amp;quot; &amp;quot;Office Suite and Productivity&amp;quot;
#yum -y groupinstall &amp;quot;Graphical Administration Tools&amp;quot; \
#&amp;quot;General Purpose Desktop&amp;quot; &amp;quot;Graphics Creation Tools&amp;quot;
systemctl set-default graphical.target
systemctl disable initial-setup-text
systemctl disable initial-setup-graphical

yum -y install --nogpgcheck  https://repo.yandex.ru/yandex-browser/rpm/beta/x86_64/yandex-browser-beta-17.1.1.773-1.x86_64.rpm
yum -y install --nogpgcheck https://tel.red/repos/redhat/7/noarch/telred-redhat-7-latest.el7.noarch.rpm
yum -y install --nogpgcheck http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TELRED

yum -y update

yum -y install xorg-x11-server-Xvfb evolution evolution-ews evolution-plugins \
clamav yandex-browser-beta flash-plugin alsa-plugins-pulseaudio libcurl sky

#############################################
#### Setting sudo
#############################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/domain_users
localuser       ALL=(ALL) ALL
%domain\ users\@$NEW_DOMAINNAME          ALL=(ALL) ALL
%domain\ users          ALL=(ALL) ALL
%domain\ admins\@$NEW_DOMAINNAME      ALL=(ALL) NOPASSWD: ALL
%domain\ admins      ALL=(ALL) NOPASSWD: ALL
EOF

sed -i &amp;quot;/^Defaults\ targetpw.*\$/ s/^/#/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^Defaults\ env_reset.*\$/ s/\ env_reset/\ \!env_reset/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^ALL.*ALL=(ALL).*\$/ s/^/#/&amp;quot; /etc/sudoers

#########################################
### Setup NTP servers
#########################################
sudo systemctl start chronyd.service
sed -i &amp;quot;/^pool.*\$/ s/^/#/&amp;quot; /etc/chrony.conf
sed -i &amp;quot;/^server.*\$/ s/^/#/&amp;quot; /etc/chrony.conf

for dc in $DOMAIN_CONTROLLERS;
do
echo &amp;quot;server $dc iburst&amp;quot; | sudo tee -a /etc/chrony.conf
done
sudo systemctl restart chronyd.service

########################################################
#### Setup Kerberos and Samba
########################################################
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`
mv /etc/krb5.conf /etc/krb5.conf.bak_`date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;`

#########################################
### Setup Kerberos /etc/krb5.conf
#########################################
LIBDEFAULTS=$(cat &amp;lt;&amp;lt;EOF
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = false
default_realm = $DEFAULT_REALM
clockskew = 300
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
EOF
)

REALMS_KDC=$(for i in $DOMAIN_CONTROLLERS; do echo &amp;quot;kdc = $i&amp;quot;;done)

REALMS=$(cat &amp;lt;&amp;lt;EOF

[realms]
$DEFAULT_REALM = {
$REALMS_KDC
default_domain = $DEFAULT_REALM
}
EOF
)

DOMAIN_REALM=$(cat &amp;lt;&amp;lt;EOF

[domain_realm]
.$NEW_DOMAINNAME = $DEFAULT_REALM
$NEW_DOMAINNAME = $DEFAULT_REALM

[appdefaults]
pam = {
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        minimum_uid = 1
}
EOF
)

echo &amp;quot;$LIBDEFAULTS&amp;quot; &amp;gt; /etc/krb5.conf
echo &amp;quot;$REALMS&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf
echo &amp;quot;$DOMAIN_REALM&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf

########################################
#### Configure /etc/samba/smb.conf
########################################
SMB_CONF=$(cat &amp;lt;&amp;lt;EOF
# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
[global]
        workgroup = $NETBIOS_DOMAIN_NAME
        passdb backend = tdbsam
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        logon path = \\%L\profiles\.msprofile
        logon home = \\%L\%U\.9xprofile
        logon drive = P:
        usershare allow guests = No
        idmap gid = 10000-20000
        idmap uid = 10000-20000
        realm = $DEFAULT_REALM
        security = ADS
        template homedir = /home/%D/%U
        template shell = /bin/bash
        usershare max shares = 100
        winbind offline logon = no
        winbind refresh tickets = yes
        kerberos method = secrets and keytab
        winbind use default domain = yes
        encrypt passwords = yes
        dns proxy = no
        socket options = TCP_NODELAY
        domain master = no
        local master = no
        preferred master = no
        os level = 0
        domain logons = no
        load printers = no
        show add printer wizard = no
        printcap name = /dev/null
        disable spoolss = yes
EOF
)

echo &amp;quot;$SMB_CONF&amp;quot; &amp;gt; /etc/samba/smb.conf

########################################
#### Configure /etc/nsswitch.conf
########################################
sed -i &amp;#039;/^passwd:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^group:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^hosts:/ s/:.*$/: files dns/&amp;#039; /etc/nsswitch.conf

########################################
#### Configure /etc/security/pam_winbind.conf
########################################
sed -i &amp;quot;/^.*krb5_auth.*\$/ s/^.*krb5_auth.*\$/krb5_auth = yes/&amp;quot; /etc/security/pam_winbind.conf
sed -i &amp;quot;/^.*krb5_ccache_type.*\$/ s/^.*krb5_ccache_type.*\$/krb5_ccache_type = FILE/&amp;quot; /etc/security/pam_winbind.conf
sed -i &amp;quot;/^.*mkhomedir.*\$/ s/^.*mkhomedir.*\$/mkhomedir = yes/&amp;quot; /etc/security/pam_winbind.conf

systemctl enable smb
systemctl enable winbind
systemctl restart smb
systemctl restart winbind

############################################################
### Enable Autostart apps
############################################################
mkdir --parents /etc/skel/.config/autostart/
cp /usr/share/applications/sky.desktop /etc/skel/.config/autostart/

#######################################################                                                                                                                                        
#### Import CA Certificates into Browsers                                                                                                                                                      
#   http://blog.xelnor.net/firefox-systemcerts/                                                                                                                                                
#######################################################                                                                                                                                        
HOMEDIR=$(getent passwd $SUDO_USER | cut -d: -f6)                                                                                                                                                                                                                                                                                                   
rm -Rf $HOMEDIR/.mozilla                                                                                                                                                                  
rm -Rf $HOMEDIR/.pki                                                                                                                                                                      
                                                                                                                                                                                               
########################################################                                                                                                                                       
#### Create and fill cert8.db in Firefox Profile                                                                                                                                               
########################################################                                                                                                                                       
killall firefox                                                                                                                                                                           
sudo -u  $SUDO_USER xvfb-run --server-args=&amp;quot;-screen 0, 1280x1024x24&amp;quot; firefox -CreateProfile default
FirefoxProfileDir=$(find $HOMEDIR&amp;#039;/.mozilla/firefox/&amp;#039; -iname &amp;#039;*.default&amp;#039;);
for certificateFile in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d ${FirefoxProfileDir}
done
chmod -R a+rw $HOMEDIR/.mozilla/firefox/*

################################################################################
#### Import certificates into nssdb for Chromium engine
################################################################################
mkdir --parents $HOMEDIR/.pki/nssdb
echo 1q2w3e4r | sudo tee $HOMEDIR/.pki/nssdb/password-file
certutil -N -f $HOMEDIR/.pki/nssdb/password-file -d $HOMEDIR/.pki/nssdb
for certificateFile in /etc/pki/ca-trust/source/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -f $HOMEDIR/.pki/nssdb/password-file -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d sql:$HOMEDIR/.pki/nssdb
done
chmod -R a+rw $HOMEDIR/.pki/nssdb/*

#########################################################
### Copy databases with imported certs to default profile
#########################################################
rm -Rf /etc/skel/.pki/nssdb/*
rm -Rf /etc/skel/.mozilla/firefox/*
mkdir --parents /etc/skel/.pki/nssdb/
cp -Rf $HOMEDIR/.pki/nssdb/* /etc/skel/.pki/nssdb/
mkdir --parents /etc/skel/.mozilla/firefox/
cp -Rf $HOMEDIR/.mozilla/firefox/* /etc/skel/.mozilla/firefox/

#########################################################
### Disable KDEWallet By Default
#########################################################
mkdir --parents /etc/skel/.config/
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kwalletrc
[Wallet]
Enabled=false
EOF

mkdir --parents /etc/skel/.kde/share/config/
cp /etc/skel/.config/kwalletrc /etc/skel/.kde/share/config/kwalletrc

#################################################################
#### Add Launchers
#################################################################
#mkdir --parents /etc/skel/.kde/share/config/
#
#cat &amp;lt;&amp;lt;EOF &amp;gt; /ets/skel/.kde/share/config/plasma-desktop-appletsrc
#[Containments][1][Applets][5][Configuration][Launchers]
#Items=file:///opt/yandex/browser-beta/yandex_browser?wmClass=yandex-browser-beta%20%28%2Fhome%2Fmike%40test.com%2F.config%2Fyandex-browser-beta%29,file:///usr/share/applications/sky.desktop?wmClass=Sky,file:///usr/share/applications/kde4/konsole.desktop?wmClass=Konsole,file:///usr/share/applications/evolution.desktop?wmClass=Evolution
#EOF

##############################################
#### Join domain using Samba-Winbind
##############################################
#net ads join -U $AD_USER
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Script&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;script&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-13932&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;setup_citrix_vda_13&quot;&gt;Setup Citrix VDA 1.3&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
systemctl enable postgresql.service
systemctl start postgresql
postgresql-setup initdb
CTX_XDL_SUPPORT_DDC_AS_CNAME=N \
CTX_XDL_DDC_LIST=&amp;quot;v-szud-ctxdc-01.sigma.sbrf.ru v-szud-ctxdc-02.sigma.sbrf.ru&amp;quot; \
CTX_XDL_VDA_PORT=80 \
CTX_XDL_REGISTER_SERVICE=Y \
CTX_XDL_ADD_FIREWALL_RULES=Y \
CTX_XDL_AD_INTEGRATION=1 \
CTX_XDL_HDX_3D_PRO=N \
CTX_XDL_VDI_MODE=Y \
CTX_XDL_SITE_NAME=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_LDAP_LIST=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_SEARCH_BASE=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_START_SERVICE=Y \
/opt/Citrix/VDA/sbin/ctxsetup.sh&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setup Citrix VDA 1.3&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setup_citrix_vda_13&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;13933-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>ubuntu_backup</title>
            <link>https://wiki.autosys.tk/linux_faq/ubuntu_backup</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;backup&quot;&gt;Backup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В один поток:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo tar -cvpzf - --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/Shared --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/W  --exclude=/var/lib/libvirt/qemu/save/Win2008.save / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/sdb1/backup_$(date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;).tar.gz.enc&lt;/pre&gt;

&lt;p&gt;
В несколько потоков с помощью &lt;strong&gt;pigz&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install pigz
sudo tar -cvpf - --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop --exclude=/var/lib/libvirt / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/hdd/backup_$(date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;).tar.gz.enc&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Backup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;backup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-914&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;backup_по_расписанию&quot;&gt;Backup по расписанию&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Backup \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;backup_\u043f\u043e_\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;915-961&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;etccrondailybackup&quot;&gt;/etc/cron.daily/backup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Скрипт бекапит систему в заданную папку и следит за количеством файлов бекапа.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
backup_depth_days=14
backup_path=&amp;#039;/mnt/hdd&amp;#039;
backup_prefix=&amp;#039;backup_&amp;#039;

backup_files=`ls $backup_path/$backup_prefix* -t`
backup_files=(${backup_files// / })

if [[ ${#backup_files[@]} -gt $backup_depth_days ]]; then
        for ((i = $backup_depth_days; i &amp;lt; ${#backup_files[@]}; i++))
        {
            sudo rm -r -f ${backup_files[$i]}
        }
fi

sudo tar -cvpf $backup_path/$backup_prefix$(date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;).tar.gz --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/RDLEAS/usik.ma/Downloads /&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/cron.daily\/backup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etccrondailybackup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;962-1802&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;restore&quot;&gt;Restore&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Загружаемся с Live-CD.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Restore&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;restore&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1803-1860&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;восстановление_на_тот_же_раздел&quot;&gt;Восстановление на тот же раздел&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
При восстановлении на тот же раздел форматируем его с сохранением UUID (чтобы не переписывать &lt;strong&gt;/etc/fstab&lt;/strong&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkfs.ext4 -L &amp;quot;label&amp;quot; -U &amp;quot;$(sudo blkid -o value -s UUID /dev/sdXy)&amp;quot; /dev/sdXy&lt;/pre&gt;

&lt;p&gt;
Монтируем раздел:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir /mnt/restore
mount /dev/sdXy /mnt/restore&lt;/pre&gt;

&lt;p&gt;
Расшифровываем и распаковываем файлик бекапа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore&lt;/pre&gt;

&lt;p&gt;
На всякий случай (не обязательно) восстанавливаем &lt;strong&gt;grub&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo grub-install --root-directory=/mnt/restore /dev/sdX&lt;/pre&gt;

&lt;p&gt;
Обязательно создаем снова папки, которые были исключены при копировании:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp}
sudo touch /mnt/restore/var/log/lastlog&lt;/pre&gt;

&lt;p&gt;
Даем права на /tmp (иначе не запустятся иксы):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chmod -R a+rw /mnt/restore/tmp&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u043d\u0430_\u0442\u043e\u0442_\u0436\u0435_\u0440\u0430\u0437\u0434\u0435\u043b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1861-3022&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;восстановление_на_другой_диск&quot;&gt;Восстановление на другой диск&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Разбиваем диск fdisk&amp;#039;ом.
Делаем загрузочный раздел активным.
Форматируем и монтируем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkfs.ext4 /dev/sdXy
mount /dev/sdXy /mnt/restore&lt;/pre&gt;

&lt;p&gt;
Распаковываем файлик бекапа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore&lt;/pre&gt;

&lt;p&gt;
Обязательно создаем снова папки, которые были исключены при копировании:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp}
sudo touch /var/log/lastlog&lt;/pre&gt;

&lt;p&gt;
Даем права на /tmp (иначе не запустятся иксы):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chmod -R a+rw /tmp&lt;/pre&gt;

&lt;p&gt;
Обязательно восстанавливаем &lt;strong&gt;grub&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo grub-install --root-directory=/mnt/restore /dev/sdX&lt;/pre&gt;

&lt;p&gt;
После установки &lt;strong&gt;grub&lt;/strong&gt; нужно пересоздать файлик конфигурации &lt;strong&gt;/boot/grub/grub.cfg&lt;/strong&gt;. Без этого шага при загрузке будет появляться сообщение типа: &lt;br/&gt;

&lt;strong&gt;Gave up waiting for root device.&lt;/strong&gt; &lt;br/&gt;

&lt;strong&gt;ALERT: /dev/disk/by-uuid/… does not exist. Dropping to a shell!&lt;/strong&gt;.
Итак пересоздаем &lt;strong&gt;grub.cfg&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys  /mnt/restore/sys
sudo chroot /mnt/restore
sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old
sudo grub-mkconfig -o /boot/grub/grub.cfg
exit&lt;/pre&gt;

&lt;p&gt;
И последний штрих - переписываем UUID разделов в &lt;strong&gt;/etc/fstab&lt;/strong&gt;, вернее в &lt;strong&gt;/mnt/restore/etc/fstab&lt;/strong&gt;.
Узнать новые UUID разделов можно командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;blkid /dev/sdXy&lt;/pre&gt;

&lt;p&gt;
Все. Теперь можно перезагрузиться в восстановленную систему. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u0438\u0441\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u043d\u0430_\u0434\u0440\u0443\u0433\u043e\u0439_\u0434\u0438\u0441\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3023-4961&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;проблемы_и_их_решения&quot;&gt;Проблемы и их решения&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b_\u0438_\u0438\u0445_\u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4962-5013&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;не_стартуют_иксы&quot;&gt;Не стартуют иксы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Надо смотреть на ошибки, но скорее всего, нет доступа на запись в папку &lt;strong&gt;/tmp&lt;/strong&gt;
выпоняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chmod -R a+rw /tmp&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435 \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0438\u043a\u0441\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435_\u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442_\u0438\u043a\u0441\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5014-5236&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;lightdm&quot;&gt;lightdm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
При запуске KDE я столкнулся с проблемой запуска &lt;strong&gt;lightdm&lt;/strong&gt;. При старте не появляется &lt;strong&gt;Login Screen&lt;/strong&gt; где нужно выбрать пользователя и ввести пароль. Вместо него - черный экран.
При попытке запустить &lt;strong&gt;lightdm&lt;/strong&gt; он сообщает что: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Error getting user list from org.freedesktop.Accounts
Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success&lt;/pre&gt;

&lt;p&gt;
Тут помогла простая переустановка всех пакетов связанных с &lt;strong&gt;Lightdm&lt;/strong&gt;. В моем случае так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install --reinstall liblightdm-gobject-1-0 liblightdm-qt-3-0 lightdm lightdm-kde-greeter&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;lightdm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lightdm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5237-6036&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;pbis_ad&quot;&gt;PBIS AD&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Кроме того, машинка была в домене и из домена вылетела. Вводим ее обратно с помощью &lt;strong&gt;PowerBroker&lt;/strong&gt; (&lt;strong&gt;PBIS&lt;/strong&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /opt/pbis/bin/domainjoin-cli join domainName ADjoinAccountName&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PBIS AD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pbis_ad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;6037-6304&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;ошибка&quot;&gt;Ошибка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Permission denied&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;chmod a+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0448\u0438\u0431\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0448\u0438\u0431\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;6305-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 12 Jan 2020 19:06:09 +0000</pubDate>
        </item>
        <item>
            <title>ubuntu_enable_hibernate</title>
            <link>https://wiki.autosys.tk/linux_faq/ubuntu_enable_hibernate</link>
            <description>&lt;pre class=&quot;code&quot;&gt;sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>setup_centos_workstation_with_ansible_playbook</title>
            <link>https://wiki.autosys.tk/linux_faq/setup_centos_workstation_with_ansible_playbook</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне нужно создать &lt;strong&gt;playbook&lt;/strong&gt; для &lt;strong&gt;ansible&lt;/strong&gt;, который будет настраивать систему на базе клона &lt;strong&gt;CentOS&lt;/strong&gt; (&lt;strong&gt;ОСь&lt;/strong&gt; от &lt;strong&gt;НЦИ&lt;/strong&gt; - &lt;a href=&quot;http://www.os-rt.ru/&quot; class=&quot;urlextern&quot; title=&quot;http://www.os-rt.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.os-rt.ru/&lt;/a&gt; ). &lt;br/&gt;

А именно: устанавливать необходимые пакеты, настраивать систему для авторизации средствами &lt;strong&gt;AD&lt;/strong&gt;, настраивать &lt;strong&gt;autodiscovery&lt;/strong&gt; для почтового клиента &lt;strong&gt;evolution&lt;/strong&gt; для работы с &lt;strong&gt;MS Exchange&lt;/strong&gt; и производить мелкий тюнинг системы. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-637&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;playbook&quot;&gt;PlayBook&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;---
- hosts: nci-os
  vars:
    hostname: szud-os1
    domain_name: sigma.sbrf.ru
    dns_servers:
      - 10.21.7.212
      - 10.21.7.213
#      - 192.168.122.1
#      - 4.2.2.4
    domain_search: &amp;quot;{{ domain_name }} sberbank.ru&amp;quot;
    ca_cert_prefix: SberBank_Root_CA
    domain_controllers: &amp;quot;{{ dns_servers }}&amp;quot;
  remote_user: root
  tasks:

#### Setup Network Settings ####
  - name: setting DNS
    shell: |
      nmcli con mod {{ ansible_default_ipv4.interface }} ipv4.dns-search &amp;quot;{{ domain_search }}&amp;quot;
      nmcli con mod {{ ansible_default_ipv4.interface }} ipv4.dns &amp;quot;{{ dns_servers | join(&amp;#039; &amp;#039;) }}&amp;quot;
      nmcli con down {{ ansible_default_ipv4.interface }}
      nmcli con up {{ ansible_default_ipv4.interface }}

  - name: Disable IPv6
    sysctl:
      name: net.ipv6.conf.{{ item }}.disable_ipv6
      value: 1
      sysctl_set: yes
      state: present
      reload: yes
    with_items:
    - all
    - default
    - lo
    - &amp;quot;{{ ansible_default_ipv4.interface }}&amp;quot;
    
  - name: Set hostname
    shell: |
      sysctl kernel.hostname=&amp;quot;{{ hostname }}&amp;quot;
      sysctl -p
      hostnamectl set-hostname &amp;quot;{{ hostname }}&amp;quot; ##.&amp;quot;{{ domain_name }}&amp;quot;
      sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
  - lineinfile:
      name: /etc/hosts 
      regexp: &amp;#039;^127\.0\.0\.1&amp;#039;
      line: &amp;#039;127.0.0.1 {{ hostname }}.{{ domain_name }} {{ hostname }} localhost.localdomain localhost&amp;#039;
  - lineinfile:
      name: /etc/hosts
      regexp: &amp;#039;/^::1/D&amp;#039;
      state: absent
  - name: restart NetworkManager service
    service: name=NetworkManager state=restarted

#### Import IronPort Certificates ####
  - name: Import Certificates
    shell: |
      update-ca-trust force-enable
      echo &amp;quot;Trying to reach ya.ru...&amp;quot;
      ping -c 5 ya.ru &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;amp; openssl s_client -showcerts -connect ya.ru:443 &amp;lt;/dev/null &amp;gt; chain.pem || exit
      csplit -k -f &amp;quot;{{ ca_cert_prefix }}&amp;quot; ./chain.pem &amp;#039;/END CERTIFICATE/+1&amp;#039; {10}
      find ./ -iname &amp;quot;{{ ca_cert_prefix }}&amp;quot;\* -type f -exec grep -F -L &amp;#039;END CERTIFICATE&amp;#039; &amp;#039;{}&amp;#039; + | xargs -d &amp;#039;\n&amp;#039; rm
      for file in &amp;quot;{{ ca_cert_prefix }}&amp;quot;* ; do sudo mv &amp;quot;$file&amp;quot; /etc/pki/ca-trust/source/anchors/&amp;quot;$file&amp;quot;.pem ; done
      for file in /etc/pki/ca-trust/source/anchors/&amp;quot;{{ ca_cert_prefix }}&amp;quot;* ; do sudo cp &amp;quot;$file&amp;quot; /etc/ssl/certs/ ; done
      update-ca-trust extract
      rm -f ./chain.pem
      exit 0

####  Setup Software ####
  - name: upgrade all packages
    yum:
      name: &amp;#039;*&amp;#039;
      state: latest

  - name: install packages
    yum: state=present name={{ item }}
    with_items:
    - nano
    - curl
    - openssl
    - nss-tools
    - chrony
    - authconfig
    - krb5-workstation
    - samba
    - samba-client
    - samba-winbind
    - samba-winbind-clients
    - pam_krb5
    - oddjob-mkhomedir
    - cyrus-sasl-gssapi
    - cyrus-sasl-ntlm
    - openldap-clients
    - cifs-utils
    - aspell
    - evolution
    - evolution-ews
    - desktop-file-utils
    - xorg-x11-server-Xvfb
    - &amp;quot;@Development tools&amp;quot;
    - glibc.i686
    - http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
    - java-1.8.0-openjdk
  - name: install flash-plugin
    yum:
      name: flash-plugin
      state: present

#### Setup Chrony NTP Client ####
  - lineinfile:
      name: /etc/chrony.conf
      regexp: &amp;quot;{{ item.regexp }}&amp;quot;
      state: absent
    with_items:
      - { regexp: &amp;#039;^pool.*&amp;#039; }
      - { regexp: &amp;#039;^server.*&amp;#039; }
  - lineinfile:
      name: /etc/chrony.conf
      line: &amp;#039;server {{ item }} iburst&amp;#039;
    with_items: &amp;quot;{{ domain_controllers }}&amp;quot;
  - service:
      name: chronyd
      state: restarted
      
#### Setup Kerberos and Samba ####
  - name: run Authconfig
    shell: |
      DEFAULT_REALM=&amp;quot;{{ domain_name | upper }}&amp;quot;
      DOMAIN_CONTROLLERS=&amp;quot;$(host -t srv _ldap._tcp.&amp;quot;{{ domain_name }}&amp;quot; | awk {&amp;#039;print $8&amp;#039;} | sed &amp;#039;s/.$//g&amp;#039;)&amp;quot;
      NEW_DOMAINNAME=&amp;quot;{{ domain_name }}&amp;quot;
      mv /etc/krb5.conf /etc/krb5.conf_&amp;quot;$(date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;)&amp;quot;
      touch /etc/krb5.conf
      authconfig --disablecache --disablesssd --disablesssdauth --enablewinbind --enablewinbindauth \
      --smbsecurity=ads --smbworkgroup=$DEFAULT_REALM --smbrealm=$DEFAULT_REALM --enablewinbindusedefaultdomain \
      --winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash --enablekrb5 --krb5realm=$DEFAULT_REALM \
      --disablekrb5realmdns --enablekrb5kdcdns --enablelocauthorize --enablemkhomedir --enablepamaccess --updateall
      
      LIBDEFAULTS=&amp;quot;$(cat &amp;lt;&amp;lt;EOF
      [libdefaults]
      dns_lookup_kdc = true
      dns_lookup_realm = false
      default_realm = $DEFAULT_REALM
      clockskew = 300
      default_ccache_name = FILE:/tmp/krb5cc_%{uid}
      EOF
      )&amp;quot;

      REALMS_KDC=&amp;quot;$(for kdc in $DOMAIN_CONTROLLERS; do echo &amp;quot;kdc = $kdc&amp;quot;;done)&amp;quot;
      REALMS=&amp;quot;$(cat &amp;lt;&amp;lt;EOF

      [realms]
      $DEFAULT_REALM = {
      $REALMS_KDC
      default_domain = $DEFAULT_REALM
      }
      EOF
      )&amp;quot;
      DOMAIN_REALM=&amp;quot;$(cat &amp;lt;&amp;lt;EOF

      [domain_realm]
      .$NEW_DOMAINNAME = $DEFAULT_REALM
      $NEW_DOMAINNAME = $DEFAULT_REALM

      [appdefaults]
      pam = {
      ticket_lifetime = 1d
      renew_lifetime = 1d
      forwardable = true
      proxiable = false
      minimum_uid = 1
      }
      EOF
      )&amp;quot;
      echo &amp;quot;$LIBDEFAULTS&amp;quot; &amp;gt; /etc/krb5.conf
      echo &amp;quot;$REALMS&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf
      echo &amp;quot;$DOMAIN_REALM&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf

  - name: Setup Samba config
    shell: |
      mv /etc/samba/smb.conf /etc/samba/smb.conf.bak_&amp;quot;$(date +&amp;quot;%d.%m.%y_%H-%M&amp;quot;)&amp;quot;
      SMBCONF=&amp;quot;$(cat &amp;lt;&amp;lt;EOF
      [global]
        workgroup = {{ domain_name.split(&amp;#039;.&amp;#039;)[0] | upper }}
        passdb backend = tdbsam
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        usershare allow guests = No
        idmap gid = 10000-20000
        idmap uid = 10000-20000
        realm = {{ domain_name | upper }}
        security = ADS
        template homedir = /home/%D/%U
        template shell = /bin/bash
        usershare max shares = 100
        encrypt passwords = yes
        kerberos method = secrets and keytab
        winbind nested groups = yes
        winbind offline logon = no
        winbind refresh tickets = yes
        winbind use default domain = yes
        dns proxy = no
        domain master = no
        local master = no
        preferred master = no
        load printers = no
        show add printer wizard = no
        printcap name = /dev/null
        disable spoolss = yes
        client use spnego = yes
        client ntlmv2 auth = yes
      EOF
      )&amp;quot;
      echo &amp;quot;$SMBCONF&amp;quot; &amp;gt; /etc/samba/smb.conf
  - lineinfile:
      name: /etc/security/pam_winbind.conf
      regexp: &amp;#039;^.*krb5_auth&amp;#039;
      line: &amp;#039;krb5_auth = yes&amp;#039;
      
#### Install CitrixVDA ####
  - name: Add Base CentOS repository
    yum_repository:
      name: base_centos
      file: CentOS_Base
      description: Base CentOS repository
#      baseurl: http://mirrorlist.centos.org/?release=7&amp;amp;arch=x86_64&amp;amp;repo=os&amp;amp;infra=stock
#      baseurl: http://ftp.nsc.ru/pub/centos/7/os/x86_64/ 
      baseurl: http://mirror.yandex.ru/centos/7.3.1611/os/x86_64/ 
      gpgcheck: no
  - name: Install PostgreSQL
    yum: state=present name={{ item }}
    with_items:
    - postgresql-server
    - postgresql-jdbc
    - java-1.8.0-openjdk
    - open-vm-tools
  - shell: |
      postgresql-setup initdb
      systemctl start postgresql
      systemctl enable postgresql

  - name: Install VDA
#    yum: state=present name=http://szud-linux-repo.sigma.sbrf.ru/XenDesktopVDA-7.13.0.382-1.el7_2.x86_64.rpm
#    yum: state=present name=http://10.38.246.21/XenDesktopVDA-7.13.0.382-1.el7_2.x86_64.rpm
    yum: state=present name=http://10.38.246.21/XenDesktopVDA-7.14.0.400-1.el7_2.x86_64.rpm
  - name: Remove CentOS Base Repo
    yum_repository: name=base_centos state=absent
    notify: yum-clean-metadata

  - name: Setup Evolution
    file:
      path: /usr/bin/ews_autodiscovery.sh
      state: absent
    ignore_errors: yes
  - blockinfile:
      path: /usr/bin/ews_autodiscovery.sh
      create: yes
      mode: 0755
      block: |
        #!/bin/bash
        export GIO_USE_NETWORK_MONITOR=base
        DOMAINNAME=`hostname -d`
        ##################################################
        ### Check if Evolution EWS source file exist
        ##################################################
        if [ -f ~/.config/evolution/sources/ews.$USER.$DOMAINNAME.1.source ]; then
        echo
        else
        ##########################################
        ## Check if connected to AD
        ##########################################
        if ! wbinfo -P; then
        echo &amp;quot;NETLOGON test failed&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
        else
        echo &amp;quot;NETLOGON test OK&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
        CURRENT_DC=`wbinfo -P | awk &amp;#039;{print $9}&amp;#039; | awk -F &amp;quot;\&amp;quot;&amp;quot; &amp;#039;{print $2}&amp;#039;`
        FULL_NAME=`wbinfo -i $USER | awk -F &amp;quot;:&amp;quot; &amp;#039;{print $5}&amp;#039;`
        BASEDN=`echo $CURRENT_DC | sed s/&amp;quot;\.&amp;quot;/,dc=/g | sed -r &amp;#039;s!^[^dc=]+!!&amp;#039;`
        MAIL=`ldapsearch -h $CURRENT_DC -b &amp;quot;$BASEDN&amp;quot; &amp;quot;sAMAccountName=$USER&amp;quot; | grep mail: | awk &amp;#039;{print $2 }&amp;#039;`
        ###############################################################################################
        ### MS Exchange autodiscovery
        #### https://github.com/sys4/automx/blob/master/src/automx-test
        #### http://stackoverflow.com/questions/38509837/when-using-negotiate-with-curl-is-a-keytab-file-required
        #### Joined AD with samba/winbind and have package gss-ntlmssp
        #### libsasl2-modules-gssapi-mit
        ###############################################################################################
        AUTOD_URL=&amp;quot;https://autodiscover.`echo $MAIL | sed &amp;#039;s/^.*@//&amp;#039;`&amp;quot;/autodiscover/autodiscover.xml
        REQUEST=$(cat &amp;lt;&amp;lt;EOF
        &amp;lt;Autodiscover xmlns=&amp;quot;http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006&amp;quot;&amp;gt;
        &amp;lt;Request&amp;gt;
        &amp;lt;EMailAddress&amp;gt;$MAIL&amp;lt;/EMailAddress&amp;gt;
        &amp;lt;AcceptableResponseSchema&amp;gt;http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&amp;lt;/AcceptableResponseSchema&amp;gt;
        &amp;lt;/Request&amp;gt;
        &amp;lt;/Autodiscover&amp;gt;
        EOF
        )
        bash -c &amp;quot;curl -k -d &amp;#039;$REQUEST&amp;#039; --header \&amp;quot;Content-Type: text/xml\&amp;quot; -s --negotiate -u : $AUTOD_URL&amp;quot; &amp;gt; ~/.autodiscover.xml
        OABUrl=$(cat ~/.autodiscover.xml | grep -m 1 OABUrl | awk -F &amp;#039;[&amp;lt;&amp;gt;]&amp;#039; &amp;#039;{ print $3 }&amp;#039;)oab.xml
        EwsUrl=$(cat ~/.autodiscover.xml | grep -m 1 EwsUrl | awk -F &amp;#039;[&amp;lt;&amp;gt;]&amp;#039; &amp;#039;{ print $3 }&amp;#039;)
        EwsHost=$(echo $EwsUrl | awk -F &amp;#039;/&amp;#039; &amp;#039;{ print $3 }&amp;#039;)
        rm ~/.autodiscover.xml     
        echo CURRENT_DC - $CURRENT_DC &amp;gt; ~/.ews_setup.log
        echo FULL_NAME - $FULL_NAME &amp;gt;&amp;gt; ~/.ews_setup.log
        echo BASEDN - $BASEDN &amp;gt;&amp;gt; ~/.ews_setup.log
        echo MAIL - $MAIL &amp;gt;&amp;gt; ~/.ews_setup.log
        echo DOMAINNAME - $DOMAINNAME &amp;gt;&amp;gt; ~/.ews_setup.log
        echo OABUrl - $OABUrl &amp;gt;&amp;gt; ~/.ews_setup.log
        echo EwsUrl - $EwsUrl &amp;gt;&amp;gt; ~/.ews_setup.log
        echo EwsHost - $EwsHost &amp;gt;&amp;gt; ~/.ews_setup.log
        ################################################################
        ### Check URLs format
        ################################################################
        echo $OABUrl | grep -E &amp;#039;(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/(oab|OAB)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/oab.xml)&amp;#039;
        OAB_URL_Check=$?
        echo $EwsUrl | grep -E &amp;#039;(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/(ews|EWS)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&amp;amp;|=|+|\$|,|/|\?|%|#|\[|\]])*/exchange.asmx)&amp;#039;
        EWS_URL_Check=$?
        if [ $OAB_URL_Check != 0 ] || [ $EWS_URL_Check != 0 ]; then
        echo &amp;quot;OAB and EWS URLs check failed... Exit...&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
        else
        echo &amp;quot;OAB and EWS URLs check OK&amp;quot; &amp;gt;&amp;gt; ~/.ews_setup.log
        ######################################################################
        ### CleaningUp and creating evolution source files
        ######################################################################
        killall evolution-source-registry
        rm -Rf ~/.config/evolution/sources
        mkdir --parents ~/.config/evolution/sources
        #####################################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.$USER.$DOMAINNAME.1.source
        [Data Source]
        DisplayName=$MAIL
        Enabled=true
        Parent=
        
        [Offline]
        StaySynchronized=true
        
        [Authentication]
        Host=$EwsHost
        #Method=none
        Method=GSSAPI
        Port=443
        ProxyUid=system-proxy
        RememberPassword=true
        User=$USER
        CredentialName=
        
        [Collection]
        BackendName=ews
        CalendarEnabled=true
        ContactsEnabled=true
        Identity=$USER
        MailEnabled=true
        
        [Security]
        Method=none
        
        [Ews Backend]
        FilterInbox=true
        StoreChangesInterval=3
        CheckAll=true
        ListenNotifications=true
        Email=$MAIL
        FilterJunk=true
        FilterJunkInbox=false
        FoldersInitialized=true
        GalUid=ews.$USER.$DOMAINNAME
        Hosturl=$EwsUrl
        Oaburl=$OABUrl
        OabOffline=true
        OalSelected=
        Timeout=300
        UseImpersonation=false
        ImpersonateUser=
        EOF
        
        ######################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.$USER.$DOMAINNAME.0.source
        [Data Source]
        DisplayName=$MAIL
        Enabled=true
        Parent=ews.$USER.$DOMAINNAME.1
        
        [Mail Composition]
        Bcc=
        Cc=
        DraftsFolder=folder://ews.$USER.$DOMAINNAME/%d0%a7%d0%b5%d1%80%d0%bd%d0%be%d0%b2%d0%b8%d0%ba%d0%b8
        SignImip=true
        TemplatesFolder=folder://local/Templates
        
        [Mail Identity]
        Address=$MAIL
        Name=$FULL_NAME
        Organization=
        ReplyTo=
        SignatureUid=none
        
        [Mail Submission]
        SentFolder=folder://ews.$USER.$DOMAINNAME/%d0%9e%d1%82%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5
        TransportUid=ews.$USER.$DOMAINNAME.13
        RepliesToOriginFolder=false
        EOF
        
        ######################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.$USER.$DOMAINNAME.3.source
        [Data Source]
        DisplayName=$MAIL
        Enabled=true
        Parent=ews.$USER.$DOMAINNAME.1
        
        [Refresh]
        Enabled=true
        IntervalMinutes=3
        
        [Mail Account]
        BackendName=ews
        IdentityUid=ews.$USER.$DOMAINNAME
        ArchiveFolder=
        EOF
        
        ###############################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/ews.$USER.$DOMAINNAME.13.source
        [Data Source]
        DisplayName=$MAIL
        Enabled=true
        Parent=ews.$USER.$DOMAINNAME.1
        
        [Mail Transport]
        BackendName=ews
        EOF
        
        ################################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/local.source
        # Special built-in mail store.
        [Data Source]
        DisplayName=On This Computer
        Enabled=false
        Parent=
        
        [Mail Account]
        BackendName=maildir
        IdentityUid=self
        ArchiveFolder=
        
        [Maildir Backend]
        FilterInbox=true
        Path=$HOME/.local/share/evolution/mail/local
        EOF
        
        ########################################################################
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/sources/vfolder.source
        # Special built-in mail store.
        
        [Data Source]
        DisplayName=Search Folders
        Enabled=false
        Parent=
        
        [Mail Account]
        BackendName=vfolder
        IdentityUid=self
        ArchiveFolder=
        
        [Vfolder Backend]
        FilterInbox=true
        EOF
        
        ##################################################################
        mkdir --parents ~/.config/evolution/mail/
        cat &amp;lt;&amp;lt;EOF &amp;gt; ~/.config/evolution/mail/state.ini
        [GlobalFolder]
        GroupByThreads=false
        PreviewVisible=true
        
        [Store ews.$USER.$DOMAINNAME.3]
        Expanded=true
        
        [Search Bar]
        SearchScope=mail-scope-current-folder
        SearchOption=mail-search-subject-or-addresses-contain
        
        [Folder Tree]
        Selected=folder://ews.$USER.$DOMAINNAME.3/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5
        
        [Folder folder://ews.$USER.$DOMAINNAME.3/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5]
        GroupByThreads=false
        PreviewVisible=true
        Expanded=true
        EOF
        
        fi
        fi
        fi
        
  - file:
      path: /etc/skel/.config/autostart/
      state: directory
      mode: 0755
  - file:
      path: /etc/skel/.config/autostart/ews_autodiscovery.desktop
      state: absent
    ignore_errors: yes            
  - blockinfile:
      path: /etc/skel/.config/autostart/ews_autodiscovery.desktop
      create: yes
      mode: 0644
      marker: &amp;quot;&amp;quot;
      block: |
        [Desktop Entry]
        Encoding=UTF-8
        Version=1.0
        Type=Application
        Name=Evolution Mail Client Preconfigure
        Comment=Evolution Mail Client Preconfigure
        Exec=/usr/bin/ews_autodiscovery.sh &amp;amp;
        StartupNotify=false
        Terminal=false
        Hidden=false
        OnlyShowIn=GNOME;XFCE;LXDE;
        X-GNOME-Autostart-enabled=true
  - file:
      path: /etc/skel/.config/xfce4/
      state: directory
      mode: 0755
  - file: 
      path: /etc/skel/.config/xfce4/helpers.rc
      state: touch
      mode: 0644
  - lineinfile:
      path: /etc/skel/.config/xfce4/helpers.rc
      state: present
      regexp: &amp;#039;^MailReader=&amp;#039;
      line: &amp;#039;MailReader=evolution&amp;#039;

#### Disable ScreenSaver
  - name: Disable Screen Saver
    blockinfile:
      path: /etc/skel/.Xdefaults
      create: yes
      mode: 0644
      marker: &amp;quot;&amp;quot;
      block: |
        xautolock.locker:z-securelock auth_none saver_z_screensaver
        xautolock.time:1000
        xsaver_xautolock:Случайно
        xtime_xautolock:0
...

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PlayBook&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;playbook&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;638-18928&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;join_ad_domain_setup_citrix_vda_playbook&quot;&gt;Join AD Domain Setup Citrix VDA Playbook&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;---
- hosts: nci_os_szud
  vars:
    hostname: szud-os2
  tasks:

  - name: Set hostname
    shell: |
      sysctl kernel.hostname=&amp;quot;{{ hostname }}&amp;quot;
      sysctl -p
      hostnamectl set-hostname &amp;quot;{{ hostname }}&amp;quot; ##.&amp;quot;{{ domain_name }}&amp;quot;
      sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
  - lineinfile:
      name: /etc/hosts 
      regexp: &amp;#039;^127\.0\.0\.1&amp;#039;
      line: &amp;#039;127.0.0.1 {{ hostname }}.{{ domain_name }} {{ hostname }} localhost.localdomain localhost&amp;#039;
  - lineinfile:
      name: /etc/hosts
      regexp: &amp;#039;/^::1/D&amp;#039;
      state: absent
  - name: restart NetworkManager service
    service: name=NetworkManager state=restarted
  - shell: |
      net ads join -U ADDSIGMACA%PASSWORD
      /opt/Citrix/VDA/sbin/ctxcleanup.sh
      CTX_XDL_SUPPORT_DDC_AS_CNAME=N \
      CTX_XDL_DDC_LIST=&amp;quot;v-szud-ctxdc-01.sigma.sbrf.ru v-szud-ctxdc-02.sigma.sbrf.ru&amp;quot; \
      CTX_XDL_VDA_PORT=80 \
      CTX_XDL_REGISTER_SERVICE=Y \
      CTX_XDL_ADD_FIREWALL_RULES=Y \
      CTX_XDL_AD_INTEGRATION=1 \
      CTX_XDL_HDX_3D_PRO=N \
      CTX_XDL_VDI_MODE=Y \
      CTX_XDL_SITE_NAME=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
      CTX_XDL_LDAP_LIST=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
      CTX_XDL_SEARCH_BASE=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
      CTX_XDL_START_SERVICE=Y \
      /opt/Citrix/VDA/sbin/ctxsetup.sh

      sleep 10
      reboot
...&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Join AD Domain Setup Citrix VDA Playbook&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;join_ad_domain_setup_citrix_vda_playbook&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;18929-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>kde_task_manager_launchers</title>
            <link>https://wiki.autosys.tk/linux_faq/kde_task_manager_launchers</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;контектстное_меню_show_a_launcher_when_not_running&quot;&gt;Контектстное меню **Show A Launcher When Not Running**&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Как в KDE вручную отредактировать лаунчеры (или посмотреть что запускает тот или иной лаунчер), которые создаются с помощью контектстного меню &lt;strong&gt;Show A Launcher When Not Running&lt;/strong&gt; ?
&lt;/p&gt;

&lt;p&gt;
список этих лаунчеров находится в файле &lt;strong&gt; ~/.kde/share/config/plasma-desktop-appletsrc&lt;/strong&gt; &lt;br/&gt;

там есть раздел в названии которого в конце указано &lt;strong&gt;[Launchers]&lt;/strong&gt;. &lt;br/&gt;

В моем случае это: &lt;strong&gt;[Containments][22][Applets][26][Configuration][Launchers]&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
и Выглядит он как-то так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Containments][22][Applets][26][Configuration][Launchers]
Items=preferred://browser?wmClass=%20,preferred://filemanager?wmClass=%20,file:///usr/share/applications/viber.desktop?wmClass=ViberPC,file:///usr/share/applications/kde4/ksysguard.desktop?wmClass$
browser=preferred://browser, , ,\s
filemanager=preferred://filemanager, , ,\s
liteide=file:///home/local/RIMOS_NT_01/usikmi/liteide/bin/liteide,,liteide,,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAACi9JREFUaIG9Wn9sG9Ud/7y7$&lt;/pre&gt;

&lt;p&gt;
В строке &lt;strong&gt;Items=preferred:&lt;/strong&gt; через запятую указаны файлы ярлыков запускаемых проложений.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>lxde_vnc-в-контейнере-lxc</title>
            <link>https://wiki.autosys.tk/linux_faq/lxde_vnc-%D0%B2-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B5-lxc</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;для_чего&quot;&gt;Для чего&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне нужен &lt;strong&gt;headless&lt;/strong&gt; LXC-контейнер с экономичным декстопным окружением, доступ к которому будет осуществляться по &lt;strong&gt;VNC&lt;/strong&gt;, а лучше - по &lt;strong&gt;RDP&lt;/strong&gt;. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043b\u044f \u0447\u0435\u0433\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043b\u044f_\u0447\u0435\u0433\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-274&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;варианты_решения&quot;&gt;Варианты решения&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В качестве ОС контейнера выступает &lt;strong&gt;Ubuntu 16.04&lt;/strong&gt;. &lt;br/&gt;

Для запуска иксов в &lt;strong&gt;headless&lt;/strong&gt;-контейнере понадобится эмуляция видеоадаптера. &lt;br/&gt;

Для этих целей можно использовать либо &lt;strong&gt;xvfb&lt;/strong&gt; (&lt;strong&gt;X Virtual Frame Buffer&lt;/strong&gt;) либо &lt;strong&gt;xdummy&lt;/strong&gt;. Оба пакета присутствуют в репозиториях большинства дистрибутивов, однако, более продвинутым является &lt;strong&gt;xdummy&lt;/strong&gt;. &lt;br/&gt;

В данной заметке я рассмотрю настройку двух этих решений. &lt;br/&gt;

В качестве десктопного окружения я протестирую пару - &lt;strong&gt;Xfce&lt;/strong&gt; и &lt;strong&gt;LXDE&lt;/strong&gt;. Сразу скажу, что вариант с &lt;strong&gt;Xfce&lt;/strong&gt; мне понравился гораздо больше. &lt;br/&gt;

Для доступа к графической оболочке я планирую использовать &lt;strong&gt;VNC&lt;/strong&gt; или &lt;strong&gt;RDP&lt;/strong&gt; (но можно использовать и другие протоколы). Например: &lt;strong&gt;SPICE&lt;/strong&gt; - &lt;a href=&quot;https://discuss.linuxcontainers.org/t/access-container-via-spice-sharing-clipboard/2544/3&quot; class=&quot;urlextern&quot; title=&quot;https://discuss.linuxcontainers.org/t/access-container-via-spice-sharing-clipboard/2544/3&quot; rel=&quot;ugc nofollow&quot;&gt;https://discuss.linuxcontainers.org/t/access-container-via-spice-sharing-clipboard/2544/3&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b_\u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;275-1562&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;xfce_xdummy_xrdp&quot;&gt;Xfce + xdummy + xrdp&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Установка необходимых компонент:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get -y install nano curl xserver-xorg-video-dummy xserver-xorg-core x11vnc xubuntu-desktop&lt;/pre&gt;

&lt;p&gt;
Настройки &lt;strong&gt;X&lt;/strong&gt; для работы с &lt;strong&gt;xdummy&lt;/strong&gt; (файлик &lt;strong&gt;/etc/X11/xorg.conf&lt;/strong&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; 
# This xorg configuration file is meant to be used
# to start a dummy X11 server.
# For details, please see:
# https://www.xpra.org/xorg.conf

# Here we setup a Virtual Display of 1600x900 pixels

Section &amp;quot;Device&amp;quot;
    Identifier &amp;quot;Configured Video Device&amp;quot;
    Driver &amp;quot;dummy&amp;quot;
    #VideoRam 4096000
    #VideoRam 256000
    VideoRam 16384
EndSection

Section &amp;quot;Monitor&amp;quot;
    Identifier &amp;quot;Configured Monitor&amp;quot;
    HorizSync 5.0 - 1000.0
    VertRefresh 5.0 - 200.0
    Modeline &amp;quot;1600x900&amp;quot; 33.92 1600 1632 1760 1792 900 921 924 946
EndSection

Section &amp;quot;Screen&amp;quot;
    Identifier &amp;quot;Default Screen&amp;quot;
    Monitor &amp;quot;Configured Monitor&amp;quot;
    Device &amp;quot;Configured Video Device&amp;quot;
    DefaultDepth 24
    SubSection &amp;quot;Display&amp;quot;
        Viewport 0 0
        Depth 24
        Virtual 1600 900
    EndSubSection
EndSection&lt;/pre&gt;

&lt;p&gt;
Список строчек для различных режимов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;    Modeline &amp;quot;1920x1080&amp;quot; 23.53 1920 1952 2040 2072 1080 1106 1108 1135
    Modeline &amp;quot;1680x1050&amp;quot; 20.08 1680 1712 1784 1816 1050 1075 1077 1103
    Modeline &amp;quot;1600x1200&amp;quot; 22.04 1600 1632 1712 1744 1200 1229 1231 1261
    Modeline &amp;quot;1600x900&amp;quot; 33.92 1600 1632 1760 1792 900 921 924 946
    Modeline &amp;quot;1440x900&amp;quot; 30.66 1440 1472 1584 1616 900 921 924 946
    ModeLine &amp;quot;1366x768&amp;quot; 72.00 1366 1414 1446 1494 768 771 777 803
    Modeline &amp;quot;1280x1024&amp;quot; 31.50 1280 1312 1424 1456 1024 1048 1052 1076
    Modeline &amp;quot;1280x800&amp;quot; 24.15 1280 1312 1400 1432 800 819 822 841
    Modeline &amp;quot;1280x768&amp;quot; 23.11 1280 1312 1392 1424 768 786 789 807
    Modeline &amp;quot;1360x768&amp;quot; 24.49 1360 1392 1480 1512 768 786 789 807
    Modeline &amp;quot;1024x768&amp;quot; 18.71 1024 1056 1120 1152 768 786 789 807&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Xfce + xdummy + xrdp&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xfce_xdummy_xrdp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1563-3499&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;xrdp&quot;&gt;XRDP&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Я буду использовать связку &lt;strong&gt;xrdp&lt;/strong&gt; + &lt;strong&gt;xorgrdp&lt;/strong&gt;. Раньше довольно популярным было использование &lt;strong&gt;x11rdp&lt;/strong&gt;, однако его поддержки нужно пересобрать &lt;strong&gt;Xorg&lt;/strong&gt;, а в случае с &lt;strong&gt;xorgrdp&lt;/strong&gt; этого не требуется. &lt;br/&gt;

&lt;strong&gt;Xrdp&lt;/strong&gt; можно установить из репозитория, однако он там довольно старый. Я предпочитаю собирать последнюю версию.  
Ставим средства для сборки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install git autoconf libtool pkg-config gcc g++ make  libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev  flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev&lt;/pre&gt;

&lt;p&gt;
Скачиваем и собираем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir ./xrdp
cd xrdp/
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.1/xorgxrdp-0.2.1.tar.gz
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.2/xrdp-0.9.2.tar.gz
tar -xvf ./xrdp-0.9.2.tar.gz 
cd ./xrdp-0.9.2
./bootstrap
./configure --enable-fuse --enable-rfxcodec --enable-mp3lame --enable-pixman --disable-painter --disable-ipv6
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
cd ..
tar xvfz xorgxrdp-0.2.1.tar.gz 
cd xorgxrdp-0.2.1
./bootstrap
./configure
make
sudo make install&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;XRDP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xrdp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3500-5010&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;настройка_xrdp&quot;&gt;Настройка XRDP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В принципе, достаточно просто включить сервис и уже можно подключаться.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl enable xrdp
sudo service xrdp start &lt;/pre&gt;

&lt;p&gt;
Однако, неплохо бы немного скорректировать список доступных при подключении опций - по умолчанию он избыточен.&lt;br/&gt;

Для этого открываем файлик &lt;strong&gt;/etc/xrdp/xrdp.ini&lt;/strong&gt; и в нижней части в разделе &lt;strong&gt;Session types&lt;/strong&gt; удаляем или комментируем все, кроме:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;;
; Session types
;

[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 XRDP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_xrdp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5011-5767&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;lightdm&quot;&gt;lightdm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;/etc/lightdm/lightdm.conf&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Seat:*]
xserver-allow-tcp=false
xserver-command=X -nolisten tcp&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;lightdm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lightdm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5768-5895&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;проблемы&quot;&gt;Проблемы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
После обновления контейнера &lt;strong&gt;Ubutnu 16.04&lt;/strong&gt; до &lt;strong&gt;18.04&lt;/strong&gt; перестал работать &lt;strong&gt;xrdp&lt;/strong&gt;. &lt;br/&gt;

После ввода логина и пароля он долго тупит, а потом выдает: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;login successful for display 10
started connecting
connection problem, giving up
some problem&lt;/pre&gt;

&lt;p&gt;
В логе &lt;strong&gt;/var/log/xrdp.log&lt;/strong&gt; ошибки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[DEBUG] Closed socket 19 (AF_UNIX)&lt;/pre&gt;

&lt;p&gt;
В логе &lt;strong&gt;/var/log/xrdp-sesman.log&lt;/strong&gt; ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[ERROR] X server for display 10 startup timeout&lt;/pre&gt;

&lt;p&gt;
В директории пользователя, который логинится в файле &lt;strong&gt;~/.xorgxrdp.XX.log&lt;/strong&gt; такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[  4034.806] (II) LoadModule: &amp;quot;xorgxrdp&amp;quot;
[  4034.807] (II) Loading /usr/lib/xorg/modules/libxorgxrdp.so
[  4034.807] (II) Module XORGXRDP: vendor=&amp;quot;X.Org Foundation&amp;quot;
[  4034.807]    compiled for 1.18.4, module version = 1.0.0
[  4034.807]    ABI class: X.Org Video Driver, version 20.0
[  4034.807] (EE) xorgxrdp: module ABI major version (20) doesn&amp;#039;t match the server&amp;#039;s version (23)
[  4034.807] (II) UnloadModule: &amp;quot;xorgxrdp&amp;quot;
[  4034.807] (II) Unloading xorgxrdp
[  4034.807] (EE) Failed to load module &amp;quot;xorgxrdp&amp;quot; (module requirement mismatch, 0)&lt;/pre&gt;

&lt;p&gt;
Причина - несоответствие &lt;strong&gt;ABI&lt;/strong&gt; собранного вручную модуля &lt;strong&gt;xorgxrdp&lt;/strong&gt; и текущего &lt;strong&gt;Xorg&lt;/strong&gt;. &lt;br/&gt;

Решение - пересобрать &lt;strong&gt;xorgxrdp&lt;/strong&gt; с текущими библиотеками &lt;strong&gt;xserver-xorg-dev&lt;/strong&gt; и переустановить его. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5896-7456&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit8&quot; id=&quot;lxde_xvfb_x11vnc&quot;&gt;LXDE + Xvfb + x11vnc&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В качестве ОС контейнера выступает &lt;strong&gt;Ubuntu 16.04&lt;/strong&gt;, а в качестве &lt;strong&gt;DE&lt;/strong&gt; - пакет &lt;strong&gt;lubuntu-desktop&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get -y upgrade
sudo apt-get -y install nano curl xvfb xserver-xorg-core x11vnc lubuntu-desktop&lt;/pre&gt;

&lt;p&gt;
Дальше план такой - в скрипт &lt;strong&gt;/etc/X11/xinit/xserverrc&lt;/strong&gt; прописываем запуск &lt;strong&gt;Xvfb&lt;/strong&gt; - в результате у нас будет дисплей &lt;strong&gt;:0&lt;/strong&gt; и прописываем в конфигурацию &lt;strong&gt;lightdm&lt;/strong&gt; запуск этого скрипта (вместо дефолтной команды &lt;strong&gt;X&lt;/strong&gt;). В результате при старте &lt;strong&gt;lightdm&lt;/strong&gt; у нас запустится &lt;strong&gt;Xvfb&lt;/strong&gt;. Потом создадим сервис &lt;strong&gt;x11vnc&lt;/strong&gt; и настроим его автозапуск. &lt;br/&gt;

Поехали.&lt;br/&gt;

Настраиваем &lt;strong&gt;lightdm&lt;/strong&gt;, чтобы он запускал при старте иксов &lt;strong&gt;/etc/X11/xinit/xserverrc&lt;/strong&gt;, а не дефолтную команду &lt;strong&gt;xserver-command=X&lt;/strong&gt; . Для этого в файлик &lt;strong&gt;/etc/lightdm/lightdm.conf&lt;/strong&gt; пишем вот что:                                                                                                                         
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[SeatDefaults]
greeter-session=lightdm-gtk-greeter
user-session=Xubuntu
xserver-command=/etc/X11/xinit/xserverrc&lt;/pre&gt;

&lt;p&gt;
Cкорректируем &lt;strong&gt;/etc/X11/xinit/xserverrc&lt;/strong&gt;, чтобы запускался &lt;strong&gt;Xvfb&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh

#exec /usr/bin/X -nolisten tcp &amp;quot;$@&amp;quot;
exec Xvfb :0 -screen 0 1024x768x24&lt;/pre&gt;

&lt;p&gt;
Теперь нужно организовать автоматический запуск &lt;strong&gt;x11vnc&lt;/strong&gt;. Это можно сделать двумя путями. Либо прописать строку запуска в &lt;strong&gt;/etc/rc.local&lt;/strong&gt;, либо создать сервис в &lt;strong&gt;systemd&lt;/strong&gt;. Создадим сервис. В файлик &lt;strong&gt;/lib/systemd/system/x11vnc.service&lt;/strong&gt; напишем такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Unit]
Description=Remote control service x11vnc
After=graphical.target

[Service]
Restart=always
RestartSec=5
Type=simple
ExecStart=-/usr/bin/x11vnc -display :0 -auth &amp;quot;/var/run/lightdm/root/:0&amp;quot; -rfbauth /etc/x11vnc.pass -o /var/log/x11vnc.log
User=x11vnc
Group=x11vnc

[Install]
WantedBy=graphical.target&lt;/pre&gt;

&lt;p&gt;
Создадим пользователя для запуска этого сервиса, создадим файлик с логами и дадим на него права:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo useradd x11vnc --system
sudo touch /var/log/x11vnc.log
sudo chown -R x11vnc /var/log/x11vnc.log &lt;/pre&gt;

&lt;p&gt;
Включаем и запускаем сервис:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl enable x11vnc.service
sudo systemctl start x11vnc.service&lt;/pre&gt;

&lt;p&gt;
Проверяем статус сервиса:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl status x11vnc.service&lt;/pre&gt;

&lt;p&gt;
И, наконец, задаем пароль для &lt;strong&gt;VNC&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
sudo chown x11vnc /etc/x11vnc.pass&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LXDE + Xvfb + x11vnc&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lxde_xvfb_x11vnc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;7457-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 11 Sep 2019 07:17:56 +0000</pubDate>
        </item>
        <item>
            <title>автозапуск-в-ubuntu</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%B0%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%B2-ubuntu</link>
            <description>
&lt;p&gt;
Несколько способов автозапуска приложений в Ubuntu:&lt;br/&gt;

&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;etcinitd&quot;&gt;/etc/init.d/&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Первый - из &lt;strong&gt;/etc/init.d/&lt;/strong&gt;. Установка запуска с помощью &lt;strong&gt;update-rc.d&lt;/strong&gt;. Запускается при старте системы, независимо от того вошел ли кто-то в систему или нет. Не подходит для задач, которым нужны ИКСЫ.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/init.d\/&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etcinitd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;95-462&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;при_входе_пользователя_в_терминал&quot;&gt;При входе пользователя в терминал&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Запуск при входе пользователя через ssh или запуска терминала - файл &lt;strong&gt;~/.bashrc&lt;/strong&gt; . Другой способ - создать файл &lt;strong&gt;~/.ssh/config&lt;/strong&gt; и добавить опцию &lt;strong&gt;LocalCommand&lt;/strong&gt; (и &lt;strong&gt;PermitLocalCommand&lt;/strong&gt;).  see man ssh_config.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438_\u0432\u0445\u043e\u0434\u0435_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f_\u0432_\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;463-847&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;настройка_автозапуска_приложений_x_из_gui&quot;&gt;Настройка автозапуска приложений X из GUI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В ubuntu 12.04 в dash надо набрать &lt;strong&gt;startup applications&lt;/strong&gt;. Дальше все просто.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 X \u0438\u0437 GUI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430_\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439_x_\u0438\u0437_gui&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;848-1044&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;настройка_автозапуска_приложений_x_из_командной_строки&quot;&gt;Настройка автозапуска приложений X из командной строки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Автозапуск приложений после входа запуска X описывается в файлах &lt;strong&gt;.desktop&lt;/strong&gt;, лежащих в &lt;strong&gt;~/.config/autostart&lt;/strong&gt;. Они выполняются после входа пользователя. &lt;br/&gt;

Файлы .desktop для установленых приложений можно найти в папке &lt;strong&gt;/usr/share/applications&lt;/strong&gt;.&lt;br/&gt;

Имеют примерно такое содержимое (только &amp;lt; и &amp;gt; надо убрать):&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Desktop Entry]
Type=Application
Name=&amp;lt;Name of application as displayed&amp;gt;
Exec=&amp;lt;command to execute&amp;gt;
Icon=&amp;lt;full path to icon&amp;gt;
Comment=&amp;lt;optinal comments&amp;gt;
X-GNOME-Autostart-enabled=true&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 X \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430_\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439_x_\u0438\u0437_\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439_\u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1045-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>сборка_системы_для_arm-роутера_на_pc</title>
            <link>https://wiki.autosys.tk/linux_faq/%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_arm-%D1%80%D0%BE%D1%83%D1%82%D0%B5%D1%80%D0%B0_%D0%BD%D0%B0_pc</link>
            <description>
&lt;p&gt;
У меня есть такой роутер: &lt;a href=&quot;https://wiki.autosys.tk/home/router?s[]=nano&amp;amp;s[]=pi#nano_pi_r1_1gb&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.autosys.tk/home/router?s[]=nano&amp;amp;s[]=pi#nano_pi_r1_1gb&quot; rel=&quot;ugc nofollow&quot;&gt;Nano Pi R1 &lt;/a&gt; и я бы хотел собрать для него образ &lt;a href=&quot;https://freedombox.org/ FreedomBox&quot; class=&quot;urlextern&quot; title=&quot;https://freedombox.org/ FreedomBox&quot; rel=&quot;ugc nofollow&quot;&gt;https://freedombox.org/ FreedomBox&lt;/a&gt;. &lt;br/&gt;

И собирать его я бы хотел на PC. &lt;br/&gt;

Вот тут много информации (хотя и не всегда свежей) о сборке и загрузке debian на платформах Allwinner - &lt;a href=&quot;https://wiki.debian.org/InstallingDebianOn/Allwinner&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.debian.org/InstallingDebianOn/Allwinner&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.debian.org/InstallingDebianOn/Allwinner&lt;/a&gt;. &lt;br/&gt;

Тем, кому не хочется ничего собирать - &lt;a href=&quot;https://www.armbian.com/nanopi-r1/&quot; class=&quot;urlextern&quot; title=&quot;https://www.armbian.com/nanopi-r1/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.armbian.com/nanopi-r1/&lt;/a&gt; и если хочется, но не вдаваясь в подробности - &lt;a href=&quot;https://github.com/armbian/build&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/armbian/build&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/armbian/build&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;armbian&quot;&gt;Armbian&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При попытке загрузить образ &lt;strong&gt;Armbian_20.02.1_Nanopi-r1_buster_current_5.4.20.img&lt;/strong&gt; система останавливалась при попытке распаковать ядро:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Starting kernel ...

Uncompressing Linux... done, booting the kernel.&lt;/pre&gt;

&lt;p&gt;
В итоге &lt;strong&gt;Armbian&lt;/strong&gt; удалось загрузить так:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Берем официальный образ &lt;strong&gt;nanopi-r1_sd_friendlycore-xenial_4.14_armhf_20191219.img&lt;/strong&gt;. На нем три раздела. Подключаем &lt;strong&gt;loop-device&lt;/strong&gt; и потом монтируем куда-то: &lt;pre class=&quot;code&quot;&gt; sudo partx -a -v ./nanopi-r1_sd_friendlycore-xenial_4.14_armhf_20191219.img&lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Берем образ &lt;strong&gt;armbian&lt;/strong&gt; и также подключаем его как &lt;strong&gt;loop-device&lt;/strong&gt;. 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Берем с образа &lt;strong&gt;armbian&lt;/strong&gt; из директории &lt;strong&gt;boot&lt;/strong&gt; файлики &lt;strong&gt;zImage&lt;/strong&gt; и &lt;strong&gt;initrd&lt;/strong&gt; (вернее файлики на которые указывают эти симлинки), а также &lt;strong&gt;sun8i-h3-nanopi-r1.dtb&lt;/strong&gt; и переносим их на официальный образ в раздел &lt;strong&gt;boot&lt;/strong&gt; (заменив старые). Переименовываем &lt;strong&gt;initrd&lt;/strong&gt; - на официальном образе он называется &lt;strong&gt;rootfs.cpio.gz&lt;/strong&gt;. Остальные &lt;strong&gt;dtb&lt;/strong&gt; с официального образа удаляем, во избежание путаницы.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 На официальном образе удаляем всё с раздела &lt;strong&gt;rootfs&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Переносим всю файловую систему с единственного раздела образа &lt;strong&gt;armbian&lt;/strong&gt; на раздел &lt;strong&gt;rootfs&lt;/strong&gt; официального образа: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo rsync -av ./source ./destination&lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Отмонтируем &lt;strong&gt;loop&lt;/strong&gt;-устройства и заливаем официальный образ (c ядром, initrd и файловой системой от armbian), на флеху.
&lt;/p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
Для сборки загружающегося образа я сделал скриптец:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
armbian_img=&amp;#039;Armbian_20.05.0-trunk_Nanopi-r1_bionic_current_5.4.32.img&amp;#039;
friendlyarm_img=&amp;#039;nanopi-r1_sd_friendlycore-xenial_4.14_armhf_20191219.img&amp;#039;

echo &amp;#039;Copying Original FriendlyARM image...&amp;#039;
cp $friendlyarm_img &amp;quot;Armbian_bootable.img&amp;quot;

mkdir ./original_armbian
mkdir ./bootable_armbian_boot
mkdir ./bootable_armbian_rootfs

armbian_offset=`/sbin/fdisk -lu $armbian_img | grep ${armbian_img}1 | awk &amp;#039;{ print $2}&amp;#039;`

echo &amp;quot;Armbian partition Offset - &amp;quot; $(( $armbian_offset * 512 ))

mount -o loop,offset=$(($armbian_offset * 512)) $armbian_img ./original_armbian

friendlyarm_boot_offset=`/sbin/fdisk -lu $friendlyarm_img | grep ${friendlyarm_img}1 | awk &amp;#039;{ print $2}&amp;#039;`
friendlyarm_rootfs_offset=`/sbin/fdisk -lu $friendlyarm_img | grep ${friendlyarm_img}2 | awk &amp;#039;{ print $2}&amp;#039;`

mount -o loop,offset=$(($friendlyarm_boot_offset * 512)) ./Armbian_bootable.img ./bootable_armbian_boot

echo &amp;quot;Copying kernel...&amp;quot;
cp -L ./original_armbian/boot/zImage ./bootable_armbian_boot/zImage

echo &amp;quot;Copying initrd...&amp;quot;
cp -L ./original_armbian/boot/uInitrd ./bootable_armbian_boot/rootfs.cpio.gz

echo &amp;quot;Copying DTB&amp;quot;
rm -f ./bootable_armbian_boot/sun8i*.dtb
cp ./original_armbian/boot/dtb/sun8i-h3-nanopi-r1.dtb ./bootable_armbian_boot/

umount ./bootable_armbian_boot

mount -o loop,offset=$(($friendlyarm_rootfs_offset * 512)) ./Armbian_bootable.img ./bootable_armbian_rootfs
rm -Rf ./bootable_armbian_rootfs/*

echo &amp;quot;Copying rootfs&amp;quot;
rsync -a ./original_armbian/ ./bootable_armbian_rootfs/
rm -rf ./bootable_armbian_rootfs/boot/*

umount ./bootable_armbian_rootfs
umount ./original_armbian

echo &amp;#039;Done!&amp;#039;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Armbian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;armbian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;747-4445&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;проблемы&quot;&gt;Проблемы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В один прекрасный момент интернет, который раздавал этот роутер отвалился. В журнале обнаружилось вот что:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[482827.380398] ------------[ cut here ]------------
[482827.380448] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:448 dev_watchdog+0x213/0x214
[482827.380459] NETDEV WATCHDOG: eth1 (r8152): transmit queue 0 timed out
[482827.380466] Modules linked in: nft_masq nft_nat nft_chain_nat nf_nat nft_counter nft_ct nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nf_tables_set nf_tables nfnetlink evdev brcmfmac brcmutil cfg80211 lima sun8i_codec_analog snd_soc_simple_card sun4i_gpadc_iio sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card_utils gpu_sched rfkill snd_soc_core industrialio snd_pcm_dmaengine sun8i_thermal snd_pcm cdc_ether snd_timer usbnet option snd r8152 soundcore usb_wwan usbserial sunxi_cedrus(C) v4l2_mem2mem uio_pdrv_genirq gpio_keys uio cpufreq_dt zram sch_fq_codel usb_f_acm u_serial g_serial libcomposite ip_tables x_tables pwrseq_simple uas realtek
[482827.380668] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G         C        5.4.32-sunxi #trunk
[482827.380674] Hardware name: Allwinner sun8i Family
[482827.380717] [&amp;lt;c010da8d&amp;gt;] (unwind_backtrace) from [&amp;lt;c010a0ad&amp;gt;] (show_stack+0x11/0x14)
[482827.380745] [&amp;lt;c010a0ad&amp;gt;] (show_stack) from [&amp;lt;c0951e8f&amp;gt;] (dump_stack+0x6f/0x7c)
[482827.380775] [&amp;lt;c0951e8f&amp;gt;] (dump_stack) from [&amp;lt;c011b5ff&amp;gt;] (__warn+0xb7/0xb8)
[482827.380799] [&amp;lt;c011b5ff&amp;gt;] (__warn) from [&amp;lt;c011b8ab&amp;gt;] (warn_slowpath_fmt+0x5f/0x74)
[482827.380822] [&amp;lt;c011b8ab&amp;gt;] (warn_slowpath_fmt) from [&amp;lt;c085019b&amp;gt;] (dev_watchdog+0x213/0x214)
[482827.380848] [&amp;lt;c085019b&amp;gt;] (dev_watchdog) from [&amp;lt;c01720c3&amp;gt;] (call_timer_fn+0x27/0x128)
[482827.380869] [&amp;lt;c01720c3&amp;gt;] (call_timer_fn) from [&amp;lt;c0172c3d&amp;gt;] (run_timer_softirq+0x3f9/0x418)
[482827.380891] [&amp;lt;c0172c3d&amp;gt;] (run_timer_softirq) from [&amp;lt;c01022f7&amp;gt;] (__do_softirq+0xdf/0x288)
[482827.380912] [&amp;lt;c01022f7&amp;gt;] (__do_softirq) from [&amp;lt;c0120353&amp;gt;] (irq_exit+0x7b/0x90)
[482827.380938] [&amp;lt;c0120353&amp;gt;] (irq_exit) from [&amp;lt;c0160517&amp;gt;] (__handle_domain_irq+0x47/0x84)
[482827.380968] [&amp;lt;c0160517&amp;gt;] (__handle_domain_irq) from [&amp;lt;c05e3bed&amp;gt;] (gic_handle_irq+0x39/0x6c)
[482827.380992] [&amp;lt;c05e3bed&amp;gt;] (gic_handle_irq) from [&amp;lt;c0101ae5&amp;gt;] (__irq_svc+0x65/0x94)
[482827.381002] Exception stack(0xc0f01f20 to 0xc0f01f68)
[482827.381022] 1f20: 00000000 54e7da08 ef69ff34 c0116341 ffffe000 c0f04f68 c0f04fb0 00000001
[482827.381041] 1f40: c0f04f48 00000000 c0ec48f0 c0ff67f6 ffffffff c0f01f70 c010792f c0107930
[482827.381050] 1f60: 40070033 ffffffff
[482827.381074] [&amp;lt;c0101ae5&amp;gt;] (__irq_svc) from [&amp;lt;c0107930&amp;gt;] (arch_cpu_idle+0x28/0x2c)
[482827.381100] [&amp;lt;c0107930&amp;gt;] (arch_cpu_idle) from [&amp;lt;c013fa47&amp;gt;] (do_idle+0x15b/0x1cc)
[482827.381121] [&amp;lt;c013fa47&amp;gt;] (do_idle) from [&amp;lt;c013fcb1&amp;gt;] (cpu_startup_entry+0x19/0x20)
[482827.381146] [&amp;lt;c013fcb1&amp;gt;] (cpu_startup_entry) from [&amp;lt;c0e00c6d&amp;gt;] (start_kernel+0x3fb/0x40c)
[482827.381158] ---[ end trace df317a78f05c9e9f ]---&lt;/pre&gt;

&lt;p&gt;
Ядро: Linux nanopi-r1 5.4.32-sunxi #trunk SMP Sat Apr 25 21:48:40 UTC 2020 armv7l armv7l armv7l GNU/Linux
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;4446-7565&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;сборка_armbian&quot;&gt;Сборка Armbian&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;/home/mike/build/userpatches/config-example.conf

./compile.sh  BOARD=nanopi-r1 BRANCH=dev RELEASE=buster BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=yes&lt;/pre&gt;

&lt;p&gt;
или так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;./compile.sh  BOARD=nanopi-r1 BRANCH=current RELEASE=buster BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no&lt;/pre&gt;

&lt;p&gt;
На &lt;strong&gt;NanoPi R1&lt;/strong&gt; у меня работает вот так собранный &lt;strong&gt;Armbian&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo ./compile.sh  BOARD=nanopi-r1 BRANCH=current RELEASE=bionic BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 Armbian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_armbian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;7566-8156&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;cобрать_образ_armbian_с_какой-то_конкрентной_версией_ядра&quot;&gt;Cобрать образ armbian с какой-то конкрентной версией ядра&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Нужно добавить строку вида:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;KERNELBRANCH=&amp;#039;tag:v4.14.52&amp;#039;&lt;/pre&gt;

&lt;p&gt;
в файл &lt;strong&gt;build/userpatches/lib.config&lt;/strong&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;echo &amp;#039;KERNELBRANCH=&amp;quot;branch:orange-pi-5.7&amp;quot;&amp;#039; &amp;gt; ./build/userpatches/lib.config&lt;/pre&gt;

&lt;p&gt;
Подробнее тут - &lt;a href=&quot;https://forum.armbian.com/topic/10427-specific-kernel-build/&quot; class=&quot;urlextern&quot; title=&quot;https://forum.armbian.com/topic/10427-specific-kernel-build/&quot; rel=&quot;ugc nofollow&quot;&gt;https://forum.armbian.com/topic/10427-specific-kernel-build/&lt;/a&gt; &lt;br/&gt;

Чтобы выяснить - откуда берутся сорцы ядра и какие там есть бранчи или теги идем в файлик конфига нашего устройства, например, сюда &lt;strong&gt;./config/boards/nanopi-r1.conf&lt;/strong&gt;. &lt;br/&gt;

Там видим - &lt;strong&gt;BOARDFAMILY=“sun8i”&lt;/strong&gt; &lt;br/&gt;

Значит дальше идем сюда: &lt;strong&gt;./config/sources/families/sun8i.conf&lt;/strong&gt;. &lt;br/&gt;

Там видим: &lt;strong&gt;source “${BASH_SOURCE%/*}/include/sunxi_common.inc”&lt;/strong&gt; &lt;br/&gt;

И далее смотрим сюда: &lt;strong&gt;config/sources/families/include/sunxi_common.inc&lt;/strong&gt; и видим такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;case $BRANCH in
        legacy)

                KERNELSOURCE=&amp;quot;https://github.com/megous/linux&amp;quot;
                KERNELBRANCH=&amp;quot;branch:orange-pi-5.4&amp;quot;
                KERNELPATCHDIR=&amp;#039;sunxi-&amp;#039;$BRANCH

        ;;

        current)

                KERNELSOURCE=&amp;quot;https://github.com/megous/linux&amp;quot;
                KERNELBRANCH=&amp;quot;branch:orange-pi-5.8&amp;quot;
                KERNELPATCHDIR=&amp;#039;sunxi-&amp;#039;$BRANCH

        ;;

        dev)

                KERNELSOURCE=&amp;quot;https://github.com/megous/linux&amp;quot;
                KERNELBRANCH=&amp;quot;branch:orange-pi-5.9&amp;quot;
                KERNELPATCHDIR=&amp;#039;sunxi-&amp;#039;$BRANCH
                BOOTBRANCH=&amp;#039;tag:v2020.07&amp;#039;

        ;;
esac&lt;/pre&gt;

&lt;p&gt;
Тут видно откуда берутся исходники и какие бранчи скрываются за псевдонимами (legacy, current, dev).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;C\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 armbian \u0441 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u043d\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;c\u043e\u0431\u0440\u0430\u0442\u044c_\u043e\u0431\u0440\u0430\u0437_armbian_\u0441_\u043a\u0430\u043a\u043e\u0439-\u0442\u043e_\u043a\u043e\u043d\u043a\u0440\u0435\u043d\u0442\u043d\u043e\u0439_\u0432\u0435\u0440\u0441\u0438\u0435\u0439_\u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;8157-9992&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;сборка_ядра_и_u-boot_для_nano_pi_r1_allwinner_h3&quot;&gt;Сборка ядра и u-boot для Nano Pi R1 (Allwinner H3)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B&quot; class=&quot;urlextern&quot; title=&quot;http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B&quot; rel=&quot;ugc nofollow&quot;&gt;http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B&lt;/a&gt; &lt;br/&gt;

Ставим софт:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;apt-get install git swig python-dev python3-dev build-essential bc bison flex u-boot-tools screen gcc-arm-linux-gnueabi libncurses-dev&lt;/pre&gt;

&lt;p&gt;
Распаковываем тулчейн (его можно найти &lt;a href=&quot;https://drive.google.com/drive/folders/1pr5qG4GHf20hv4OncTrgULM0H-haJIjW&quot; class=&quot;urlextern&quot; title=&quot;https://drive.google.com/drive/folders/1pr5qG4GHf20hv4OncTrgULM0H-haJIjW&quot; rel=&quot;ugc nofollow&quot;&gt;тут&lt;/a&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;tar xf arm-cortexa9-linux-gnueabihf-4.9.3-20160512.tar.xz -C /opt/FriendlyARM/toolchain/
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto
. ~/.bashrc
arm-linux-gcc -v&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u044f\u0434\u0440\u0430 \u0438 u-boot \u0434\u043b\u044f Nano Pi R1 (Allwinner H3)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u044f\u0434\u0440\u0430_\u0438_u-boot_\u0434\u043b\u044f_nano_pi_r1_allwinner_h3&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;9993-10685&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;собираем_u-boot&quot;&gt;Собираем U-Boot&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~
git clone https://github.com/friendlyarm/u-boot.git -b sunxi-v2017.x --depth 1
cd u-boot/
make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
make ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;p&gt;
в результате получится файлик &lt;strong&gt;u-boot-sunxi-with-spl.bin&lt;/strong&gt;, который можно записать на SD-карточку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c U-Boot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c_u-boot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;10686-11142&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;собираем_ядро&quot;&gt;Собираем ядро&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вариантов пара - собрать то что предлагает &lt;strong&gt;FriendlyARM&lt;/strong&gt;, либо &lt;strong&gt;mainline kernel&lt;/strong&gt;. &lt;br/&gt;

В конце концов, я пришел к тому, что собрать придется оба ядра! &lt;br/&gt;

Mainline - новое и хорошее, при его работе (в по крайней мере под qemu) не возникает некоторых ошибок типа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;thermal thermal_zone0: failed to read out thermal zone (-16)&lt;/pre&gt;

&lt;p&gt;
Зато с ядром от &lt;strong&gt;FriendlyARM&lt;/strong&gt; собираются родные для этих устройств файлы &lt;strong&gt;DTB&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c_\u044f\u0434\u0440\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;11143-11798&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;ядро_от_friendlyarm_-_414&quot;&gt;Ядро от FriendlyARM - 4.14&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~
git clone https://github.com/friendlyarm/linux.git -b sunxi-4.14.y --depth 1
cd linux
touch .scmversion
make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;p&gt;
Теперь образы ядра и файлики dtb можно скопировать на загрузочный разле флехи:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cp arch/arm/boot/zImage /media/SD/boot/
cp arch/arm/boot/dts/sun8i-*-nanopi-*.dtb /media/SD/boot/&lt;/pre&gt;

&lt;p&gt;
Теперь соберем модули:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~/linux
make modules ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;p&gt;
и скопируем их на флеху. Считаем, что корневой раздел системы смонтирован в /media/SD/rootfs/:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~/linux
make modules_install INSTALL_MOD_PATH=/media/SD/rootfs/ ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042f\u0434\u0440\u043e \u043e\u0442 FriendlyARM - 4.14&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044f\u0434\u0440\u043e_\u043e\u0442_friendlyarm_-_414&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;11799-12677&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit9&quot; id=&quot;ядро_mainline&quot;&gt;Ядро Mainline&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;git clone https://github.com/torvalds/linux.git -b master --depth 1 mainline_linux
cd mainline_linux&lt;/pre&gt;

&lt;p&gt;
Вот &lt;a href=&quot;https://www.qemu.org/docs/master/system/arm/orangepi.html#running-mainline-linux&quot; class=&quot;urlextern&quot; title=&quot;https://www.qemu.org/docs/master/system/arm/orangepi.html#running-mainline-linux&quot; rel=&quot;ugc nofollow&quot;&gt;тут написано&lt;/a&gt;, что под &lt;strong&gt;orangepi&lt;/strong&gt; ядро надо собирать с помощью &lt;strong&gt;arm-linux-gnueabi-&lt;/strong&gt;, однако у &lt;strong&gt;FriendlyARM&lt;/strong&gt; написано, что с помощью &lt;strong&gt;arm-linux-&lt;/strong&gt; из их тулчейна. Я буду собирать с  &lt;strong&gt;arm-linux-&lt;/strong&gt;. Хотя, в чем именно разница - я не знаю, по крайней мере пока. &lt;br/&gt;

Для начала - скопируем файлик &lt;strong&gt;sunxi_defconfig&lt;/strong&gt;, который идет с ядром от &lt;strong&gt;FriendlyARM&lt;/strong&gt;, в &lt;strong&gt;mainline&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cp ./linux/arch/arm/configs/sunxi_defconfig ./mainline_linux/arch/arm/configs/sunxi_defconfig&lt;/pre&gt;

&lt;p&gt;
Также, в &lt;strong&gt;mainline&lt;/strong&gt; может не быть исходников некоторых модулей. Скопируем их:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cp ./linux/drivers/net/ethernet/allwinner/* ./mainline_linux/drivers/net/ethernet/allwinner/&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto
ARCH=arm CROSS_COMPILE=arm-linux- make mrproper
make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
make ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;p&gt;
И соберем модули:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;make modules ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042f\u0434\u0440\u043e Mainline&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044f\u0434\u0440\u043e_mainline&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;12678-14111&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit10&quot; id=&quot;запуск_в_эмуляторе&quot;&gt;Запуск в эмуляторе&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Вот тут страничка &lt;strong&gt;qemu-system-arm&lt;/strong&gt;, посвященная эмуляции &lt;strong&gt;OrangePi&lt;/strong&gt; (который тоже на &lt;strong&gt;Allwinner H3&lt;/strong&gt;): &lt;a href=&quot;https://www.qemu.org/docs/master/system/arm/orangepi.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.qemu.org/docs/master/system/arm/orangepi.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.qemu.org/docs/master/system/arm/orangepi.html&lt;/a&gt; &lt;br/&gt;

Судя по &lt;a href=&quot;https://lore.kernel.org/qemu-devel/6d774864-2bea-ecd6-0b14-a28d0756bfbc@adacore.com/&quot; class=&quot;urlextern&quot; title=&quot;https://lore.kernel.org/qemu-devel/6d774864-2bea-ecd6-0b14-a28d0756bfbc@adacore.com/&quot; rel=&quot;ugc nofollow&quot;&gt;обсуждениям патчей&lt;/a&gt; поддержка эмуляции машин на &lt;strong&gt;Allwinner H3&lt;/strong&gt; появилась совсем недавно - в конце 2019 года. &lt;br/&gt;

Вот тут описан запуск собранного u-boot и ядра: &lt;br/&gt;

&lt;a href=&quot;https://dev.to/rulyrudel/how-to-execute-u-boot-on-qemu-system-arm-2b22&quot; class=&quot;urlextern&quot; title=&quot;https://dev.to/rulyrudel/how-to-execute-u-boot-on-qemu-system-arm-2b22&quot; rel=&quot;ugc nofollow&quot;&gt;https://dev.to/rulyrudel/how-to-execute-u-boot-on-qemu-system-arm-2b22&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://pandysong.github.io/blog/post/run_u-boot_in_qemu/&quot; class=&quot;urlextern&quot; title=&quot;https://pandysong.github.io/blog/post/run_u-boot_in_qemu/&quot; rel=&quot;ugc nofollow&quot;&gt;https://pandysong.github.io/blog/post/run_u-boot_in_qemu/&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u0432_\u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;14112-14885&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;собираем_последний_qemu&quot;&gt;Собираем последний qemu&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.qemu.org/download/#source&quot; class=&quot;urlextern&quot; title=&quot;https://www.qemu.org/download/#source&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.qemu.org/download/#source&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~
apt-get install git build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
git clone https://git.qemu.org/git/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure
make&lt;/pre&gt;

&lt;p&gt;
Теперь можно посмотреть список машин, который поддерживается и попробывать запустить собранное ядро или u-boot:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~
./qemu/arm-softmmu/qemu-system-arm -machine help | grep orangepi
...
./qemu/arm-softmmu/qemu-system-arm -M orangepi-pc -nic user -nographic \
    kernel ./linux/arch/arm/boot/zImage \
    -append &amp;#039;console=ttyS0,115200&amp;#039; \
    -dtb ./linux/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dtb&lt;/pre&gt;

&lt;p&gt;
Так как никакой корневой файловой системы у нас нет, то всё закончится так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;.....
[    4.075519] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)&lt;/pre&gt;

&lt;p&gt;
Но ядро запустилось!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 qemu&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c_\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439_qemu&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;14886-16117&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;сборка_образа_минимальной_системы_debian&quot;&gt;Сборка образа минимальной системы debian&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.debian.org/EmDebian/CrossDebootstrap#Cross-installing_Debian_using_debootstrap.2Fmultistrap&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.debian.org/EmDebian/CrossDebootstrap#Cross-installing_Debian_using_debootstrap.2Fmultistrap&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.debian.org/EmDebian/CrossDebootstrap#Cross-installing_Debian_using_debootstrap.2Fmultistrap&lt;/a&gt; &lt;br/&gt;

&lt;br/&gt;

&lt;a href=&quot;https://wiki.debian.org/Multistrap&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.debian.org/Multistrap&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.debian.org/Multistrap&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://manpages.debian.org/jessie/multistrap/multistrap.1&quot; class=&quot;urlextern&quot; title=&quot;https://manpages.debian.org/jessie/multistrap/multistrap.1&quot; rel=&quot;ugc nofollow&quot;&gt;https://manpages.debian.org/jessie/multistrap/multistrap.1&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://gitlab.mister-muffin.de/josch/multistrap/commit/b54b65b9f73bdb97d9c2486f0eb021b2b1a2d30e&quot; class=&quot;urlextern&quot; title=&quot;https://gitlab.mister-muffin.de/josch/multistrap/commit/b54b65b9f73bdb97d9c2486f0eb021b2b1a2d30e&quot; rel=&quot;ugc nofollow&quot;&gt;https://gitlab.mister-muffin.de/josch/multistrap/commit/b54b65b9f73bdb97d9c2486f0eb021b2b1a2d30e&lt;/a&gt;  &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install multistrap kpartx qemu qemu-user-static binfmt-support dpkg-cross &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u043e\u0431\u0440\u0430\u0437\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b debian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u043e\u0431\u0440\u0430\u0437\u0430_\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_debian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;16118-16605&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;создаем_образ_флехи&quot;&gt;Создаем образ флехи&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt; cd ~
fallocate -l 4G debian-stable.img
disk=&amp;#039;debian-stable.img&amp;#039;
sgdisk --zap-all $disk
sgdisk --mbrtogpt --clear $disk
sgdisk --new=1:2048:+64Mib $disk
sgdisk --typecode=1:8300 $disk
sgdisk -N0 $disk
sgdisk --typecode=2:8300 $disk&lt;/pre&gt;

&lt;p&gt;
Создадим loop-устройства и обнаружим на них партиции:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo kpartx -v -a ./debian-stable.img&lt;/pre&gt;

&lt;p&gt;
В выводе будет что-то такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;add map loop4p1 (253:2): 0 524289 linear 7:4 2048
add map loop4p2 (253:3): 0 7860191 linear 7:4 528384&lt;/pre&gt;

&lt;p&gt;
Отформатируем эти партиции, создадим точки монтирования и смонтируем их! &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mkfs.ext4 /dev/mapper/loop4p2
sudo mkfs.ext2 /dev/mapper/loop4p1
mkdir debian-stable
sudo mount  /dev/mapper/loop4p2 ./debian-stable
sudo mkdir ./debian-stable/boot
sudo mount  /dev/mapper/loop4p1 ./debian-stable/boot&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0444\u043b\u0435\u0445\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043e\u0431\u0440\u0430\u0437_\u0444\u043b\u0435\u0445\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;16606-17568&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;заливка_минимальной_системы_debian&quot;&gt;Заливка минимальной системы debian&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания системы я применю &lt;a href=&quot;https://wiki.debian.org/Multistrap&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.debian.org/Multistrap&quot; rel=&quot;ugc nofollow&quot;&gt;Multistrap&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043b\u0438\u0432\u043a\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b debian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043b\u0438\u0432\u043a\u0430_\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_debian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17569-17748&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;debian-stableconf&quot;&gt;./debian-stable.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Минимальный конфигурационный файлик &lt;strong&gt;Multistrap&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[General]
unpack=true
bootstrap=Debian
aptsources=Debian
#cleanup=true

[Debian]
packages=systemd libnss-systemd libpam-systemd dbus default-dbus-session-bus
source=http://ftp.ru.debian.org/debian
keyring=debian-archive-keyring
suite=stable&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;.\/debian-stable.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;debian-stableconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;17749-18118&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;заливаем_систему&quot;&gt;Заливаем систему&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Теперь на смонтированные разделы нашего файла-образа я залью минимальную систему &lt;strong&gt;debian&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo multistrap -a armhf -d ./debian-stable -f ./debian-stable.conf&lt;/pre&gt;

&lt;p&gt;
При попытке собрать файловую систему появляется ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;E: The repository &amp;#039;http://ftp.ru.debian.org/debian buster InRelease&amp;#039; is not signed.  &lt;/pre&gt;

&lt;p&gt;
Причина в том, что в скрипте &lt;strong&gt;multistrap&lt;/strong&gt; некорректно устанавливается значение опции &lt;strong&gt;AllowUnauthenticated&lt;/strong&gt;. Описано тут: &lt;a href=&quot;https://github.com/volumio/Build/issues/348#issuecomment-462271607&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/volumio/Build/issues/348#issuecomment-462271607&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/volumio/Build/issues/348#issuecomment-462271607&lt;/a&gt; &lt;br/&gt;

Патчим &lt;strong&gt;multistrap&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo sed -i &amp;#039;s/Apt::Get::AllowUnauthenticated=true/Acquire::AllowInsecureRepositories=true/g&amp;#039;  /usr/sbin/multistrap&lt;/pre&gt;

&lt;p&gt;
и пробуем снова (в конфигурации должна быть опция &lt;strong&gt;keyring=debian-archive-keyring&lt;/strong&gt;, а &lt;strong&gt;noauth=true&lt;/strong&gt; быть не должно!):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo multistrap -a armhf -d ./debian-stable -f ./debian-stable.conf&lt;/pre&gt;

&lt;p&gt;
В результате всё получается и в директории &lt;strong&gt;./debian-stable&lt;/strong&gt; (куда смонтирован второй раздел файлика-образа) мы наблюдаем корневую файловую систему текущей стабильной версии &lt;strong&gt;Debian&lt;/strong&gt; для архитектуры &lt;strong&gt;armhf&lt;/strong&gt;. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043b\u0438\u0432\u0430\u0435\u043c_\u0441\u0438\u0441\u0442\u0435\u043c\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;18119-19610&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;первичная_конфигурация_пакетов&quot;&gt;Первичная конфигурация пакетов&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запускать в &lt;strong&gt;chroot&lt;/strong&gt; исполняемые файлы для архитектуры &lt;strong&gt;arm&lt;/strong&gt; нам позволят ранее установленные в хостовой системе пакеты &lt;strong&gt;qemu-user-static&lt;/strong&gt;, &lt;strong&gt;binfmt-support&lt;/strong&gt; и &lt;strong&gt;dpkg-cross&lt;/strong&gt;. &lt;br/&gt;

Подключим &lt;strong&gt;/dev&lt;/strong&gt; (что необходимо для работы с &lt;strong&gt;/dev/null&lt;/strong&gt; и &lt;strong&gt;/dev/urandom&lt;/strong&gt;) и настроим пакеты:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mount -o bind /dev/ ./debian-stable/dev/
sudo LC_ALL=C LANGUAGE=C LANG=C DEBIAN_FRONTEND=noninteractive chroot debian-stable bash -c &amp;#039;echo &amp;quot;dash dash/sh boolean false&amp;quot; | debconf-set-selections &amp;amp;&amp;amp;  dpkg --configure -a&amp;#039;&lt;/pre&gt;

&lt;p&gt;
Для настройки некоторых пакетов нужно задать пароль &lt;strong&gt;root&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chroot debian-stable/ passwd&lt;/pre&gt;

&lt;p&gt;
Теперь донастроим оставшиеся пакеты:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo LC_ALL=C LANGUAGE=C LANG=C DEBIAN_FRONTEND=noninteractive chroot debian-stable dpkg --configure -a&lt;/pre&gt;

&lt;p&gt;
Теперь скопируем ядро и &lt;strong&gt;dtb&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo cp ./mainline_linux/arch/arm/boot/zImage ./debian-stable/boot/
sudo cp ./mainline_linux/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dt* ./debian-stable/boot/&lt;/pre&gt;

&lt;p&gt;
Дальше нужно перенести в систему модули ядра, которые мы собрали раньше:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd ./mainline_linux
sudo PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH make modules_install INSTALL_MOD_PATH=../debian-stable ARCH=arm CROSS_COMPILE=arm-linux-&lt;/pre&gt;

&lt;p&gt;
Теперь можно сделать файлик &lt;strong&gt;/etc/fstab&lt;/strong&gt;. Для этого - посмотрим UUID партиций и создадим &lt;strong&gt;/etc/fstab&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;blkid /dev/mapper/loop4p1
/dev/mapper/loop4p1: UUID=&amp;quot;85b026f4-afd7-4ecf-8679-dd0c87e628bb&amp;quot; TYPE=&amp;quot;ext2&amp;quot; PARTUUID=&amp;quot;f9c59bb5-1bde-441b-8e5a-9eeff8e77693&amp;quot;
blkid /dev/mapper/loop4p2
/dev/mapper/loop4p2: UUID=&amp;quot;683177df-8d27-4733-a490-c8e69fb0b525&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTUUID=&amp;quot;9faf1102-5994-4226-ac73-adc6b6e4e043&amp;quot;&lt;/pre&gt;

&lt;p&gt;
В итоге &lt;strong&gt;/etc/fstab&lt;/strong&gt; будет такой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;UUID=683177df-8d27-4733-a490-c8e69fb0b525   /      ext4   defaults,discard,noatime,nodiratime   0   1
UUID=85b026f4-afd7-4ecf-8679-dd0c87e628     /boot  ext2   defaults,discard,noatime,nodiratime   0   1&lt;/pre&gt;

&lt;p&gt;
Заменим дефолтный target: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo rm -f ./debian-stable/etc/systemd/system/default.target
sudo ln -s /lib/systemd/system/multi-user.target ./debian-stable/etc/systemd/system/default.target&lt;/pre&gt;

&lt;p&gt;
И создадим симлинк для того, чтобы появилось устройство &lt;strong&gt;ttyS0&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo ln -s /lib/systemd/system/getty@.service ./debian-stable/etc/systemd/system/getty.target.wants/getty@ttyS0.service&lt;/pre&gt;

&lt;p&gt;
Если этого не сделать - будут ошибки типа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[  *** ] A start job is running for /dev/ttyS0 (1min 29s / 1min 30s)
[ TIME ] Timed out waiting for device /dev/ttyS0.
[DEPEND] Dependency failed for Serial Getty on ttyS0.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;19611-22597&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;отмонтируем_файл-образ_и_попробуем_запуститься&quot;&gt;Отмонтируем файл-образ и попробуем запуститься&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;cd ~
sudo umount ./debian-stable/boot
sudo umount ./debian-stable&lt;/pre&gt;

&lt;p&gt;
Удалим loop-устройства:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo kpartx -d ./debian-stable.img&lt;/pre&gt;

&lt;p&gt;
И попробуем запуститься с ядром &lt;strong&gt;mainline&lt;/strong&gt; и &lt;strong&gt;dtb&lt;/strong&gt; из поставки ядра от &lt;strong&gt;FriendlyARM&lt;/strong&gt;!
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;./qemu/arm-softmmu/qemu-system-arm -M orangepi-pc \
-nic user -nographic -kernel ./mainline_linux/arch/arm/boot/zImage  \
-append &amp;#039;console=ttyS0,115200 root=/dev/mmcblk0p2&amp;#039; \
-dtb ./linux/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dtb \
-sd ./debian-stable.img&lt;/pre&gt;

&lt;p&gt;
В итоге - не смотря на некоторые ошибки с сервисами &lt;strong&gt;systemd&lt;/strong&gt;, система смогла загрузиться, а я смог в нее залогиниться с паролем, заданным на этапе создания образа.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b-\u043e\u0431\u0440\u0430\u0437 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c_\u0444\u0430\u0439\u043b-\u043e\u0431\u0440\u0430\u0437_\u0438_\u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c_\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;22598-23541&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit19&quot; id=&quot;загрузка_системы_на_реальной_железке&quot;&gt;Загрузка системы на реальной железке&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Самым логичным способом, чтобы настройки загрузки на флехе соотвествовали настройкам U-Boot в железке, было бы взять образ флехи от производителя (например с ubuntu xenial), подмонтировать его и заменить файлик ядра и корневую файловую систему.&lt;br/&gt;

Я так и поступил. &lt;br/&gt;

&lt;br/&gt;

Но можно пойти трудным путем и пытаться сделать все вручную.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u043d\u0430_\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439_\u0436\u0435\u043b\u0435\u0437\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;23542-24204&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;исследование_конфигурации_u-boot&quot;&gt;Исследование конфигурации U-Boot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Судя по начальным сообщениям:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DRAM: 1024 MiB(408MHz)
CPU Freq: 408MHz
memory test: 1
Pattern 55aa  Writing...Reading...OK
Trying to boot from MMC2
Boot device: emmc


U-Boot 2017.11 (Oct 18 2019 - 02:50:31 +0800) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: FriendlyElec NanoPi H3
DRAM:  1 GiB
CPU Freq: 1008MHz
MMC:   SUNXI SD/MMC: 1, SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment&lt;/pre&gt;

&lt;p&gt;
И судя по тому, что начинает загружаться предустановленная система - я что-то сделал не так. &lt;br/&gt;

Наверное надо взять официальный образ и посмотреть что внутри. &lt;br/&gt;

Кстати, в выводе &lt;strong&gt;printenv&lt;/strong&gt; некоторые особенности. Чтобы &lt;strong&gt;printenv&lt;/strong&gt; выводил длинные строки целиком необходимо в терминале включить &lt;strong&gt;wrapping&lt;/strong&gt; в minicom это можно сделать нажав &lt;strong&gt;Ctrl-A&lt;/strong&gt;, затем &lt;strong&gt;Z&lt;/strong&gt; и затем &lt;strong&gt;W&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;arch=arm
baudrate=115200
board=nanopi-r1
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/booti
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_mmc=2
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=fel mmc_auto usb0 pxe dhcp 
bootcmd=fatload mmc 0:1 ${scriptaddr} boot.scr; source ${scriptaddr}
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z &amp;quot;${fdtfile}&amp;quot; -a -n &amp;quot;${soc}&amp;quot;; then sete;
bootcmd_fel=if test -n ${fel_booted} &amp;amp;&amp;amp; test -n ${fel_scriptaddr}; then echo &amp;#039;(FEL boot)&amp;#039;; source ${fel_scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_mmc_auto=run bootcmd_mmc0
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=2
bootm_size=0xa000000
console=ttyS0,115200
cpu=h3
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethaddr=02:81:8a:99:42:c5
fdt_addr_r=0x43000000
fdtcontroladdr=7bf4fa48
fdtfile=sun8i-h3-nanopi-m1-plus.dtb
kernel_addr_r=0x42000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
mmc_bootdev=1
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${die
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z &amp;quot;${fdtfile}&amp;quot; -a -n &amp;quot;${soc}&amp;quot;; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if te
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_scre
scriptaddr=0x43100000
serial#=02c000818a9942c5
soc=sunxi
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
wifi_mac_node=[2 c5 42 99 8a 81]&lt;/pre&gt;

&lt;p&gt;
Во-первых - &lt;strong&gt;DTB&lt;/strong&gt; не от &lt;strong&gt;nanopi-r1&lt;/strong&gt;, а &lt;strong&gt;sun8i-h3-nanopi-m1-plus.dtb&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 U-Boot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438_u-boot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;24205-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Nov 2020 18:28:35 +0000</pubDate>
        </item>
        <item>
            <title>kde_autostart</title>
            <link>https://wiki.autosys.tk/linux_faq/kde_autostart</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;директории_с_ярлыками_autostart&quot;&gt;Директории с ярлыками autostart&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В документации по KDE 5 - &lt;a href=&quot;https://docs.kde.org/trunk5/en/kde-workspace/kcontrol/autostart/&quot; class=&quot;urlextern&quot; title=&quot;https://docs.kde.org/trunk5/en/kde-workspace/kcontrol/autostart/&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.kde.org/trunk5/en/kde-workspace/kcontrol/autostart/&lt;/a&gt; сказано, что для автостарта используются папки: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$HOME/.config/autostart/
$HOME/.config/plasma-workspace/env
$HOME/.config/plasma-workspace/shutdown
$HOME/.config/autostart-scripts/&lt;/pre&gt;

&lt;p&gt;
При старте сессии &lt;strong&gt;KDE 4&lt;/strong&gt; просматривает содержимое следующих папок на наличие файлов &lt;strong&gt;.desktop&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;~/.kde/Autostart - Эту диреторию заполянет файликами пользователь. /etc/skel/ не работает.
~/.kde/share/autostart
~/.config/autostart
~/.local/share/autostart
/etc/xdg/autostart
/usr/share/autostart**&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u044f\u0440\u043b\u044b\u043a\u0430\u043c\u0438 autostart&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438_\u0441_\u044f\u0440\u043b\u044b\u043a\u0430\u043c\u0438_autostart&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-839&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;отключение_и_приоритеты&quot;&gt;Отключение и приоритеты&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для того чтобы включить или отключить автозапуск приложения не нужно удалять файлики &lt;strong&gt;.desktop&lt;/strong&gt;.
Для отключения автозапуска достаточно просто добавить в файл строку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Hidden=true&lt;/pre&gt;

&lt;p&gt;
Файлы, расположенные в домашней директории пользователя (&lt;strong&gt;~/.kde/share/autostart&lt;/strong&gt; и др.)имеют более высокий приоритет, по сравнению с файлами из директории &lt;strong&gt;/usr&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0438_\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;840-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>winerar_winrar_service_menu_in_kde5</title>
            <link>https://wiki.autosys.tk/linux_faq/winerar_winrar_service_menu_in_kde5</link>
            <description>
&lt;p&gt;
В KDE 5.5 мне не хватало WinRar с его возможностью одним кликом ивлекать файлы из виндовых .exe инсталляторов.&lt;br/&gt;

К счастью, нашелся &lt;strong&gt;winerar&lt;/strong&gt; - &lt;a href=&quot;https://dl.opendesktop.org/api/files/download/id/1460731697/67571-winerar.tar.gz&quot; class=&quot;urlextern&quot; title=&quot;https://dl.opendesktop.org/api/files/download/id/1460731697/67571-winerar.tar.gz&quot; rel=&quot;ugc nofollow&quot;&gt;https://dl.opendesktop.org/api/files/download/id/1460731697/67571-winerar.tar.gz&lt;/a&gt; или тут: &lt;a href=&quot;https://wiki.autosys.tk/_media/linux_faq/67571-winerar.tar.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;linux_faq:67571-winerar.tar.gz (1.3 KB)&quot;&gt;67571-winerar.tar.gz&lt;/a&gt; &lt;br/&gt;

Он создает привычное &lt;strong&gt;Winrar&lt;/strong&gt; меню в &lt;strong&gt;dolphin&lt;/strong&gt;, однако у меня оно не заработало. я копировал файлик куда нужно, однако результата не было. &lt;br/&gt;

Немного покопавшись в онторетах я нашел что нужно сделать.&lt;br/&gt;

В KDE5 изменились папки. в которых хранятся настройки &lt;strong&gt;ServiceMenus&lt;/strong&gt;.&lt;br/&gt;

Для того, чтобы все работало устанавливаем winrar (или копируем папку с виндовой машины в &lt;strong&gt;~/.wine/drive_c/Program/ Files/WinRAR/&lt;/strong&gt;), потом копируем файлик &lt;strong&gt;winerar_kde4.desktop&lt;/strong&gt; в &lt;strong&gt;/usr/share/kservices5/ServiceMenus/&lt;/strong&gt; и затем выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;kbuildsycoca5&lt;/pre&gt;

&lt;p&gt;
В результате в &lt;strong&gt;Dolphin&lt;/strong&gt; при правой кнопкой мыши появляется меню &lt;strong&gt;WineRar&lt;/strong&gt;. 
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>настройка_xrdp_для_переподключения_сессии</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_xrdp_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;настройка_xrdp_на_ubuntu_1804&quot;&gt;Настройка xrdp на Ubuntu 18.04&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Протестировано на &lt;strong&gt;Ubuntu Server 18.04&lt;/strong&gt; + &lt;strong&gt;KDE&lt;/strong&gt;. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install -y xrdp 
sudo service xrdp restart&lt;/pre&gt;

&lt;p&gt;
В принципе всё - можно подключаться. &lt;br/&gt;

В первом пункте меню при подключении нужно выбрать &lt;strong&gt;Xorg&lt;/strong&gt; (выбран по дефолту). Переподключение к существующей сессии работает сразу. &lt;br/&gt;

Чтобы убрать из меню при входе лишние пункты нужно отредактировать &lt;strong&gt;/etc/xrdp/xrdp.ini&lt;/strong&gt;. Примерно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Globals]
ini_version=1
fork=true
port=3389
use_vsock=false
tcp_nodelay=true
tcp_keepalive=true
#tcp_send_buffer_bytes=32768
#tcp_recv_buffer_bytes=32768
security_layer=negotiate
crypt_level=high
certificate=
key_file=
ssl_protocols=TLSv1, TLSv1.1, TLSv1.2
autorun=
allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
hidelogwindow=true
max_bpp=32
new_cursors=true
use_fastpath=both
blue=009cb5
grey=dedede

; Login Screen Window Title
ls_title=RDLEAS

; top level window background color in RGB format
ls_top_window_bg_color=009cb5

; width and height of login screen
ls_width=350
ls_height=430

; login screen background color in RGB format
ls_bg_color=dedede

; optional background image filename (bmp format).
#ls_background_image=

; logo
; full path to bmp-file or file in shared folder
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50

; for positioning labels such as username, password etc
ls_label_x_pos=30
ls_label_width=60

; for positioning text and combo boxes next to above labels
ls_input_x_pos=110
ls_input_width=210

; y pos for first label and combo box
ls_input_y_pos=220

; OK button
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30

; Cancel button
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30

[Logging]
LogFile=xrdp.log
LogLevel=INFO
EnableSyslog=true
SyslogLevel=INFO
; LogLevel and SysLogLevel could by any of: core, error, warning, info or debug

[Channels]
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true

[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 xrdp \u043d\u0430 Ubuntu 18.04&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_xrdp_\u043d\u0430_ubuntu_1804&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2377&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;если_не_переключается_раскладка_клавиатуры&quot;&gt;Если не переключается раскладка клавиатуры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Также, чтобы нормально переключались раскладки клавиатуры после переподключения к уже запущенной сессии (&lt;a href=&quot;https://github.com/neutrinolabs/xrdp/issues/337&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/neutrinolabs/xrdp/issues/337&quot; rel=&quot;ugc nofollow&quot;&gt;проблема описана тут&lt;/a&gt;), нужно отредактировать файлик &lt;strong&gt;/etc/xrdp/xrdp_keyboard.ini&lt;/strong&gt;. &lt;br/&gt;

Нужно отредактировать секцию &lt;strong&gt;[default_layouts_map]&lt;/strong&gt; и пару строк привести к такому виду:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[default_layouts_map]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru&lt;/pre&gt;

&lt;p&gt;
а в конец файла добавить:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc104
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_\u043d\u0435_\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f_\u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430_\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2378-3344&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;переподключение_к_сессии_после_рестарта_сервиса_xrdp&quot;&gt;Переподключение к сессии после рестарта сервиса xrdp&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В версии xrdp, которая поставляется с Ubuntu 18.04, если во время рестарта сервиса были подключены сессии - переподключиться к ним не удается!&lt;br/&gt;

Проблема описана тут: &lt;a href=&quot;https://github.com/neutrinolabs/xrdp/issues/800&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/neutrinolabs/xrdp/issues/800&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/neutrinolabs/xrdp/issues/800&lt;/a&gt; &lt;br/&gt;

А тут предложено решение: &lt;a href=&quot;https://github.com/ben-cohen/xrdp/commit/5ff8fb8a959dce9d182007a2abf145df6559c87a&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/ben-cohen/xrdp/commit/5ff8fb8a959dce9d182007a2abf145df6559c87a&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/ben-cohen/xrdp/commit/5ff8fb8a959dce9d182007a2abf145df6559c87a&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 xrdp&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u043a_\u0441\u0435\u0441\u0441\u0438\u0438_\u043f\u043e\u0441\u043b\u0435_\u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430_\u0441\u0435\u0440\u0432\u0438\u0441\u0430_xrdp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3345-3919&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;то_что_написано_ниже_-_уже_не_актуально&quot;&gt;То что написано ниже - уже не актуально&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u043e \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0438\u0436\u0435 - \u0443\u0436\u0435 \u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u043e_\u0447\u0442\u043e_\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e_\u043d\u0438\u0436\u0435_-_\u0443\u0436\u0435_\u043d\u0435_\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3920-4005&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;настраиваем_xrdp_с_возможностью_переподключения_к_существующей_сессии&quot;&gt;Настраиваем xrdp с возможностью переподключения к существующей сессии&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Хорошая штука &lt;strong&gt;xrdp&lt;/strong&gt; - дает возможность подключаться c windows машин к linux машине по протоколу RDP. 
Однако, &lt;strong&gt;xrdp&lt;/strong&gt; версии &lt;strong&gt;0.6.0&lt;/strong&gt;, входящий в состав репозиторя &lt;strong&gt;Ubuntu 14.04&lt;/strong&gt; вский раз при подключении пользователя создает новую сессию. Такое происходит из-за входящего в состав &lt;strong&gt;xrdp&lt;/strong&gt; сервера vnc. Чтобы работало переподключение необходимо установить связку &lt;strong&gt;xrdp&lt;/strong&gt;+&lt;strong&gt;X11vnc&lt;/strong&gt;. Работающее решение нашлось тут: &lt;a href=&quot;http://c-nergy.be/blog/?p=3546&quot; class=&quot;urlextern&quot; title=&quot;http://c-nergy.be/blog/?p=3546&quot; rel=&quot;ugc nofollow&quot;&gt;http://c-nergy.be/blog/?p=3546&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Сначала ставим и удаляем штатный &lt;strong&gt;xrdp&lt;/strong&gt;, чтобы создались конфирурационные файлы:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install xrdp &amp;amp;&amp;amp; sudo apt-get remove xrdp&lt;/pre&gt;

&lt;p&gt;
Потом ставим зависимости для сборки последней версии:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install autoconf libtool libpam0g-dev libx11-dev libxfixes-dev libssl-dev &lt;/pre&gt;

&lt;p&gt;
И устанавливаем X11vnc:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install x11vnc&lt;/pre&gt;

&lt;p&gt;
Скачиваем и распаковываем последнюю версию &lt;strong&gt;xrdp&lt;/strong&gt; с &lt;strong&gt;sourceforge&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget http://netassist.dl.sourceforge.net/project/xrdp/xrdp/0.6.1/xrdp-v0.6.1.tar.gz
tar -xvf ./xrdp-v0.6.1.tar.gz 
cd xrdp-v0.6.1&lt;/pre&gt;

&lt;p&gt;
Собираем и устанавливаем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo ./bootstrap 
sudo ./configure
sudo make
sudo make install&lt;/pre&gt;

&lt;p&gt;
Настраиваем &lt;strong&gt;xrdp&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd /etc/xrdp/
sudo mv startwm.sh startwm.sh.backup
sudo ln -s /etc/X11/Xsession /etc/xrdp/startwm.sh
sudo mkdir /usr/share/doc/xrdp
sudo cp /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/rsakeys.ini &lt;/pre&gt;

&lt;p&gt;
Также заменяем скрипт, запускающий &lt;strong&gt;xrdp&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo cp /etc/init.d/xrdp /etc/init.d/xrdp.orig
sudo chmod a-x /etc/init.d/xrdp.orig
sudo nano /etc/init.d/xrdp&lt;/pre&gt;

&lt;p&gt;
И вставляем туда вот что:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh -e
#
# start/stop xrdp and sesman daemons
#
### BEGIN INIT INFO
# Provides:          xrdp
# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start xrdp and sesman daemons
# Description:       XRDP uses the Remote Desktop Protocol to present a
#                    graphical login to a remote client allowing connection
#                    to a VNC server or another RDP server.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/xrdp
PIDDIR=/var/run
SESMAN_START=yes
USERID=xrdp
RSAKEYS=/etc/xrdp/rsakeys.ini
NAME=xrdp
DESC=&amp;quot;Remote Desktop Protocol server&amp;quot;

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

check_root()  {
    if [ &amp;quot;$(id -u)&amp;quot; != &amp;quot;0&amp;quot; ]; then
        log_failure_msg &amp;quot;You must be root to start, stop or restart $NAME.&amp;quot;
        exit 4
    fi
}

if [ -r /etc/default/$NAME ]; then
   . /etc/default/$NAME
fi

# Tasks that can only be run as root
if [ &amp;quot;$(id -u)&amp;quot; = &amp;quot;0&amp;quot; ]; then
    # Check for pid dir
    if [ ! -d $PIDDIR ] ; then
        mkdir $PIDDIR
    fi
    chown $USERID:$USERID $PIDDIR

    # Check for rsa key 
    if [ ! -f $RSAKEYS ] || cmp $RSAKEYS /usr/share/doc/xrdp/rsakeys.ini &amp;gt; /dev/null; then
        log_action_begin_msg &amp;quot;Generating xrdp RSA keys...&amp;quot;
        (umask 077 ; xrdp-keygen xrdp $RSAKEYS)
        chown $USERID:$USERID $RSAKEYS
        if [ ! -f $RSAKEYS ] ; then
            log_action_end_msg 1 &amp;quot;could not create $RSAKEYS&amp;quot;
            exit 1
        fi
        log_action_end_msg 0 &amp;quot;done&amp;quot;
    fi
fi

case &amp;quot;$1&amp;quot; in
  start)
        check_root
        exitval=0
        log_daemon_msg &amp;quot;Starting $DESC &amp;quot; 
        if pidofproc -p $PIDDIR/$NAME.pid $DAEMON &amp;gt; /dev/null; then
            log_progress_msg &amp;quot;$NAME apparently already running&amp;quot;
            log_end_msg 0
            exit 0
        fi
        log_progress_msg $NAME
        start-stop-daemon --start --quiet --oknodo  --pidfile $PIDDIR/$NAME.pid \
	    --chuid $USERID:$USERID --exec $DAEMON
        exitval=$?
	if [ &amp;quot;$SESMAN_START&amp;quot; = &amp;quot;yes&amp;quot; ] ; then
            log_progress_msg &amp;quot;sesman&amp;quot;
            start-stop-daemon --start --quiet --oknodo --pidfile $PIDDIR/xrdp-sesman.pid \
	       --exec /usr/local/sbin/xrdp-sesman
            value=$?
            [ $value -gt 0 ] &amp;amp;&amp;amp; exitval=$value
        fi
        # Make pidfile readables for all users (for status to work)
        [ -e $PIDDIR/xrdp-sesman.pid ] &amp;amp;&amp;amp; chmod 0644 $PIDDIR/xrdp-sesman.pid
        [ -e $PIDDIR/$NAME.pid ] &amp;amp;&amp;amp; chmod 0644 $PIDDIR/$NAME.pid
        # Note: Unfortunately, xrdp currently takes too long to create
        # the pidffile unless properly patched
        log_end_msg $exitval
	;;
  stop)
        check_root
	[ -n &amp;quot;$XRDP_UPGRADE&amp;quot; -a &amp;quot;$RESTART_ON_UPGRADE&amp;quot; = &amp;quot;no&amp;quot; ] &amp;amp;&amp;amp; {
	    echo &amp;quot;Upgrade in progress, no restart of xrdp.&amp;quot;
	    exit 0
	}
        exitval=0
        log_daemon_msg &amp;quot;Stopping RDP Session manager &amp;quot; 
        log_progress_msg &amp;quot;sesman&amp;quot;
        if pidofproc -p  $PIDDIR/xrdp-sesman.pid /usr/local/sbin/xrdp-sesman  &amp;gt; /dev/null; then
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDDIR/xrdp-sesman.pid \
                --chuid $USERID:$USERID --exec /usr/local/sbin/xrdp-sesman
            exitval=$?
        else
            log_progress_msg &amp;quot;apparently not running&amp;quot;
        fi
        log_progress_msg $NAME
        if pidofproc -p  $PIDDIR/$NAME.pid $DAEMON  &amp;gt; /dev/null; then
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDDIR/$NAME.pid \
	    --exec $DAEMON
            value=$?
            [ $value -gt 0 ] &amp;amp;&amp;amp; exitval=$value
        else
            log_progress_msg &amp;quot;apparently not running&amp;quot;
        fi
        log_end_msg $exitval
	;;
  restart|force-reload)
        check_root
	$0 stop
        # Wait for things to settle down
        sleep 1
	$0 start
	;;
  reload)
        log_warning_msg &amp;quot;Reloading $NAME daemon: not implemented, as the daemon&amp;quot;
        log_warning_msg &amp;quot;cannot re-read the config file (use restart).&amp;quot;
        ;;
  status)
        exitval=0
        log_daemon_msg &amp;quot;Checking status of $DESC&amp;quot; &amp;quot;$NAME&amp;quot;
        if pidofproc -p  $PIDDIR/$NAME.pid $DAEMON  &amp;gt; /dev/null; then
            log_progress_msg &amp;quot;running&amp;quot;
            log_end_msg 0
        else
            log_progress_msg &amp;quot;apparently not running&amp;quot;
            log_end_msg 1 || true
            exitval=1
        fi
	if [ &amp;quot;$SESMAN_START&amp;quot; = &amp;quot;yes&amp;quot; ] ; then
            log_daemon_msg &amp;quot;Checking status of RDP Session Manager&amp;quot; &amp;quot;sesman&amp;quot;
            if pidofproc -p  $PIDDIR/xrdp-sesman.pid /usr/local/sbin/xrdp-sesman  &amp;gt; /dev/null; then
                log_progress_msg &amp;quot;running&amp;quot;
                log_end_msg 0
            else
                log_progress_msg &amp;quot;apparently not running&amp;quot;
                log_end_msg 1 || true
                exitval=1
            fi
        fi
        exit $exitval
        ;;
  *)
	N=/etc/init.d/$NAME
	echo &amp;quot;Usage: $N {start|stop|restart|force-reload|status}&amp;quot; &amp;gt;&amp;amp;2
	exit 1
	;;
esac

exit 0  &lt;/pre&gt;

&lt;p&gt;
Редактируем &lt;strong&gt;/etc/xrdp/xrdp.ini&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo nano /etc/xrdp/xrdp.ini&lt;/pre&gt;

&lt;p&gt;
и приводим его к такому виду:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
max_bpp=24
#black=000000
#grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1&lt;/pre&gt;

&lt;p&gt;
Если на вашей &lt;strong&gt;Ubuntu&lt;/strong&gt; используется &lt;strong&gt;KDE&lt;/strong&gt;, то
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;echo  &amp;quot;startkde&amp;quot; &amp;gt; ~/.xsession&lt;/pre&gt;

&lt;p&gt;
Если на вашей &lt;strong&gt;Ubuntu&lt;/strong&gt; используется &lt;strong&gt;gnome&lt;/strong&gt;, то надо отключить богатую графику:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install gnome-session-fallback
echo  &amp;quot;gnome-session – -session=gnome-fallback&amp;quot; &amp;gt; ~/.xsession&lt;/pre&gt;

&lt;p&gt;
Теперь запускаем xrdp, подключаемся и радуемся
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /etc/init.d/xrdp start&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c xrdp \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c_xrdp_\u0441_\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e_\u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f_\u043a_\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439_\u0441\u0435\u0441\u0441\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4006-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 02 Apr 2020 15:19:39 +0000</pubDate>
        </item>
        <item>
            <title>bamt-маиним-bitcoin-с-картами-amd-7900</title>
            <link>https://wiki.autosys.tk/linux_faq/bamt-%D0%BC%D0%B0%D0%B8%D0%BD%D0%B8%D0%BC-bitcoin-%D1%81-%D0%BA%D0%B0%D1%80%D1%82%D0%B0%D0%BC%D0%B8-amd-7900</link>
            <description>
&lt;p&gt;
BAMT версии 0.5 (на начало октября 2012) не поддерживает карты AMD 7900.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Для того чтобы максимально быстро и удобно интегрировать новые драйвера в BAMT нам понадобятся:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
1. Образ BAMT&lt;br/&gt;

2. VMWare Player или Workstation&lt;br/&gt;

3. StarWind Converter &lt;a href=&quot;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&quot; class=&quot;urlextern&quot; title=&quot;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Начинаем.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Скачиваем и устанавливаем StarWind Converter &lt;a href=&quot;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&quot; class=&quot;urlextern&quot; title=&quot;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.starwindsoftware.com/f3z99a6/StarWindConverter.exe&lt;/a&gt;&lt;br/&gt;

Запускаем StarWind Converter и конвертируем образ BAMT в формат VMDK&lt;br/&gt;

В VMWare создаем виртуальную машину с операционкой “Ubuntu” и указываем в качестве HDD - файл сконвертированный из BAMT.&lt;br/&gt;

Загружаем машину, запускаем Accessories → Root Terminal. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Меняем пароль рута, чтобы зайти по SSH&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;passwd root&lt;/pre&gt;

&lt;p&gt;
и подключаемся по SSH. &lt;br/&gt;

Затем обновляем AMD SDK, cgminer и драйвер ATI.&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd /usr/share
git clone https://github.com/ckolivas/cgminer.git
cd cgminer/ADL_SDK
wget http://download2-developer.amd.com/amd/GPU/zip/ADL_SDK_4.0.zip
unzip ADL_SDK_4.0.zip
cd include
mv adl* ..
cd /opt
tar xf /opt/AMD-APP-SDK-v2.4-lnx32/icd-registration.tgz
ln -s /opt/AMD-APP-SDK-v2.4-lnx32/include/CL /usr/include
ln -s /opt/AMD-APP-SDK-v2.4-lnx32/lib/x86/* /usr/lib/
ldconfig
cd /usr/share/cgminer
./autogen.sh
CFLAGS=&amp;quot;-O2 -Wall -march=native -I/opt/AMDAPP/include&amp;quot; LDFLAGS=&amp;quot;-L/usr/lib&amp;quot; ./configure --enable-scrypt
make
cp ./* /opt/miners/cgminer/ -Rf

/usr/share/ati/fglrx-uninstall.sh --force
sync
coldreboot

cd /home/user/Desktop/
wget http://www2.ati.com/drivers/linux/amd-driver-installer-12-8-x86.x86_64.zip
unzip amd-driver-installer-12-8-x86.x86_64.zip
chmod 755 amd-driver-installer-8.982-x86.x86_64.run
./amd-driver-installer-8.982-x86.x86_64.run
sync
coldreboot
&lt;/pre&gt;

&lt;p&gt;
Затем поправим файл /etc/init.d/mine&lt;br/&gt;

Мы пропишем туда разгон видеокарт и запуск cgminer&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh
logger &amp;quot;Start mining&amp;quot;
#atitweak --adapter=0 --set-engine-clock=990 --set-memory-clock=300  --set-core-voltage=1.165 --set-fan-speed=100
/usr/local/bin/atitweak --adapter=0 --set-engine-clock=1000  --set-fan-speed=100
/usr/local/bin/atitweak --adapter=1 --set-engine-clock=910 --set-fan-speed=100
/usr/local/bin/atitweak --adapter=2 --set-engine-clock=910   --set-fan-speed=100
/opt/miners/cgminer/cgminer --api-listen -c /etc/bamt/cgminer.conf

exit 0&lt;/pre&gt;

&lt;p&gt;
Сформировать файл настроек cgminer можно либо из сомого cgminer, запустив его&lt;br/&gt;

 &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/opt/miners/cgminer/cgminer --api-listen -c /etc/bamt/cgminer.conf&lt;/pre&gt;

&lt;p&gt;
и нажав S и потом W&lt;br/&gt;

 либо прописав в &lt;strong&gt;/etc/bamt/cgminer.conf&lt;/strong&gt;  вон чиво:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
{&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;pools&amp;quot; : [
        {
                &amp;quot;url&amp;quot; : &amp;quot;http://pit.deepbit.net:8332&amp;quot;,
                &amp;quot;user&amp;quot; : &amp;quot;mike@autosys.tk_homev&amp;quot;,
                &amp;quot;pass&amp;quot; : &amp;quot;xxx&amp;quot;
        }
]
,
&amp;quot;intensity&amp;quot; : &amp;quot;11,11,11&amp;quot;,
&amp;quot;vectors&amp;quot; : &amp;quot;1,2,2&amp;quot;,
&amp;quot;worksize&amp;quot; : &amp;quot;128,128,128&amp;quot;,
&amp;quot;kernel&amp;quot; : &amp;quot;diablo,diablo,diablo&amp;quot;,
&amp;quot;api-listen&amp;quot; : true,
&amp;quot;api-port&amp;quot; : &amp;quot;4028&amp;quot;,
&amp;quot;expiry&amp;quot; : &amp;quot;120&amp;quot;,
&amp;quot;gpu-dyninterval&amp;quot; : &amp;quot;7&amp;quot;,
&amp;quot;gpu-platform&amp;quot; : &amp;quot;0&amp;quot;,
&amp;quot;gpu-threads&amp;quot; : &amp;quot;2&amp;quot;,
&amp;quot;log&amp;quot; : &amp;quot;5&amp;quot;,
&amp;quot;queue&amp;quot; : &amp;quot;1&amp;quot;,
&amp;quot;scan-time&amp;quot; : &amp;quot;60&amp;quot;,
&amp;quot;shares&amp;quot; : &amp;quot;0&amp;quot;,
&amp;quot;kernel-path&amp;quot; : &amp;quot;/usr/local/bin&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
После этого надо сконвертировать VMDK обратно в формат Raw и залить на флешку&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>connect_to_remote_xorg_using_xephyr</title>
            <link>https://wiki.autosys.tk/linux_faq/connect_to_remote_xorg_using_xephyr</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://nek0.eu/posts/2014-10-25-Desktop-forwarding-via-X-using-Xephyr.html&quot; class=&quot;urlextern&quot; title=&quot;https://nek0.eu/posts/2014-10-25-Desktop-forwarding-via-X-using-Xephyr.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://nek0.eu/posts/2014-10-25-Desktop-forwarding-via-X-using-Xephyr.html&lt;/a&gt;
на клиентской машине (той с которой подключаемся) разрешаем биндить порты непривилегированным пользователям (необязательно):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;echo &amp;#039;net.ipv4.ip_unprivileged_port_start=0&amp;#039; | sudo tee -a /etc/sysctl.d/50-unprivileged-ports.conf
sysctl --system&lt;/pre&gt;

&lt;p&gt;
на клиентской машине (той с которой подключаемся) ставим &lt;strong&gt;xephyr&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install xserver-xephyr&lt;/pre&gt;

&lt;p&gt;
На клиентской машине файлике &lt;strong&gt;~/.ssh/config&lt;/strong&gt; или &lt;strong&gt;/etc/ssh/ssh_config&lt;/strong&gt; прописываем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes&lt;/pre&gt;

&lt;p&gt;
На серверной машине (к которой подключаемся) в файлике &lt;strong&gt;/etc/ssh/sshd_config&lt;/strong&gt; должно быть:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;X11Forwarding yes&lt;/pre&gt;

&lt;p&gt;
Строим туннель до системы в удаленной локалке (если серверная машина к которой подключаемся находится за другой):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ssh -f -N -L 2233:xubuntu:22 remote-server -l user&lt;/pre&gt;

&lt;p&gt;
На клиентской машине запускаем &lt;strong&gt;Xephyr&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Xephyr :1 -screen 800x600 -resizeable &amp;amp;&lt;/pre&gt;

&lt;p&gt;
И подключаем сессию:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DISPLAY=:1 ssh -Y &amp;lt;user&amp;gt;@&amp;lt;host&amp;gt;&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 Oct 2019 12:48:15 +0000</pubDate>
        </item>
        <item>
            <title>drm_intel_pipe_update_end_i915_error_atomic_update_failure_on_pipe_a</title>
            <link>https://wiki.autosys.tk/linux_faq/drm_intel_pipe_update_end_i915_error_atomic_update_failure_on_pipe_a</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ошибки_-_drmintel_pipe_update_end_i915&quot;&gt;Ошибки - [drm:intel_pipe_update_end [i915]]&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На ноутбуке с интергированной графикой Intel (процессор Intel Core i5-2410M ) в логая ядра постоянно появляются ошибки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[drm:intel_pipe_update_end [i915]] *ERROR* Atomic update failure on pipe A (start=115495 end=115496) time 210 us, min 763, max 767, scanline start 760, end 770&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0448\u0438\u0431\u043a\u0438 - [drm:intel_pipe_update_end [i915]]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0448\u0438\u0431\u043a\u0438_-_drmintel_pipe_update_end_i915&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-425&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;что_не_помогло&quot;&gt;Что НЕ помогло&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На Ubuntu 19.04 с ядром &lt;strong&gt;5.5.11-050511-lowlatency&lt;/strong&gt; помогло добавление к параметрам ядра таких:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;i915.enable_guc_loading=1 i915.enable_guc_submission=1 intel_pstate=skylake_hwp i915.enable_psr=1 i915.disable_power_well=0 nouveau.modeset=0&lt;/pre&gt;

&lt;p&gt;
То есть я отредактировал файлик &lt;strong&gt;/etc/default/grub&lt;/strong&gt;, в котором строчку &lt;strong&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/strong&gt; привел к такому виду:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot; i915.enable_guc_loading=1 i915.enable_guc_submission=1 intel_pstate=skylake_hwp i915.enable_psr=1 i915.disable_power_well=0 nouveau.modeset=0 quiet &amp;quot;&lt;/pre&gt;

&lt;p&gt;
а затем обновил конфигурацию grub:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo update-grub&lt;/pre&gt;

&lt;p&gt;
и перезагрузился.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u041d\u0415 \u043f\u043e\u043c\u043e\u0433\u043b\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u043d\u0435_\u043f\u043e\u043c\u043e\u0433\u043b\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;426-1230&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;drm-tip_kernel&quot;&gt;drm-tip kernel&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Вот тут люди советуют пересобрать &lt;strong&gt;drm-tip kernel&lt;/strong&gt; и установить и вроде все становится ОК :
&lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=105870#c16&quot; class=&quot;urlextern&quot; title=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=105870#c16&quot; rel=&quot;ugc nofollow&quot;&gt;https://bugs.freedesktop.org/show_bug.cgi?id=105870#c16&lt;/a&gt; &lt;br/&gt;

Собирать вот так: &lt;a href=&quot;https://01.org/linuxgraphics/documentation/build-guide-0&quot; class=&quot;urlextern&quot; title=&quot;https://01.org/linuxgraphics/documentation/build-guide-0&quot; rel=&quot;ugc nofollow&quot;&gt;https://01.org/linuxgraphics/documentation/build-guide-0&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install build-essential flex bison libssl-dev libelf-dev libncurses5 libncurses5-dev libdw-dev binutils-dev libc6-dev&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;drm-tip kernel&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;drm-tip_kernel&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1231-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 07 Apr 2020 11:39:31 +0000</pubDate>
        </item>
        <item>
            <title>freebsd_11.0_radeon_8000_can_not_load_module</title>
            <link>https://wiki.autosys.tk/linux_faq/freebsd_11.0_radeon_8000_can_not_load_module</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Xorg&lt;/strong&gt; не запускается, а в логах ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[drm] failed to load kernel module &amp;quot;radeon&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Если попытатьзя загрузить модуль &lt;strong&gt;radeon_drv.so&lt;/strong&gt; вручную:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;kldload /usr/local/lib/xorg/modules/drivers/radeon_drv.so &lt;/pre&gt;

&lt;p&gt;
то в &lt;strong&gt;dmesg&lt;/strong&gt; будет ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;link elf: symbol xf86CrtcConfigPrivateIndex undefined&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-402&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;что_же_делать&quot;&gt;Что же делать&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bsddesktop.com/images/110amd64-ports-graphics-xserver-mesa-next/&quot; class=&quot;urlextern&quot; title=&quot;http://www.bsddesktop.com/images/110amd64-ports-graphics-xserver-mesa-next/&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.bsddesktop.com/images/110amd64-ports-graphics-xserver-mesa-next/&lt;/a&gt;
&lt;a href=&quot;https://github.com/FreeBSDDesktop/freebsd-base-graphics/wiki&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/FreeBSDDesktop/freebsd-base-graphics/wiki&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/FreeBSDDesktop/freebsd-base-graphics/wiki&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u0436\u0435_\u0434\u0435\u043b\u0430\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;403-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>freebsd_to_trueos</title>
            <link>https://wiki.autosys.tk/linux_faq/freebsd_to_trueos</link>
            <description>&lt;pre class=&quot;code&quot;&gt;pkg&lt;/pre&gt;

&lt;p&gt;
Нажимаем y чтобы установить &lt;strong&gt;pkg&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;pkg upgrade
pkg install nano wget&lt;/pre&gt;

&lt;p&gt;
Отключаем репозитории FreeBSD:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mv /etc/pkg/FreeBSD.conf /root/FreeBSD.conf-old&lt;/pre&gt;

&lt;p&gt;
Создаем файлик репозитория &lt;strong&gt;TrueOS&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir -p /usr/local/etc/pkg/repos
nano /usr/local/etc/pkg/repos/pcbsd.conf&lt;/pre&gt;

&lt;p&gt;
Пишем туда такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;pcbsd: {
       url: &amp;quot;http://pkg.cdn.pcbsd.org/11.0-CURRENTJULY2016/amd64/&amp;quot;,
       signature_type: &amp;quot;fingerprints&amp;quot;,
       fingerprints: &amp;quot;/usr/local/etc/pkg/fingerprints/pcbsd&amp;quot;,
       enabled: true
      }&lt;/pre&gt;

&lt;p&gt;
Затем создаем директории:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir -p /usr/local/etc/pkg/fingerprints/pcbsd/revoked
mkdir -p /usr/local/etc/pkg/fingerprints/pcbsd/trusted&lt;/pre&gt;

&lt;p&gt;
И скачиваем файл &lt;strong&gt;fingerprint&lt;/strong&gt; и кладем его куда надо:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget --no-check-certificate https://github.com/pcbsd/pcbsd-build/raw/master/pcbsd/pkg-dist/fingerprints/pcbsd/trusted/pkg.cdn.pcbsd.org.20131209
mv pkg.cdn.pcbsd.org.20131209 /usr/local/etc/pkg/fingerprints/pcbsd/trusted/

pkg upgrade -fy
fetch --no-verify-peer -o /etc/freebsd-update.conf &amp;#039;https://github.com/pcbsd/freebsd/raw/master/etc/freebsd-update.conf&amp;#039;



freebsd-update fetch
freebsd-update install
pkg install -fy pcbsd-base
rehash
pbreg set /PC-BSD/SysType PCBSD
pc-extractoverlay ports
pc-extractoverlay desktop

дальше перезагружаемся. Если нужно при первой загрузке настроить парметры, то перед перезагрузкой выполняем:
touch /var/.runxsetup
touch /var/.pcbsd-firstboot
touch /var/.pcbsd-firstgui&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;reboot&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>kde_not_copying_etc_skel_on_user_first_login</title>
            <link>https://wiki.autosys.tk/linux_faq/kde_not_copying_etc_skel_on_user_first_login</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Система - &lt;strong&gt;Ubuntu Server 16.04&lt;/strong&gt; + &lt;strong&gt;KDE-desktop&lt;/strong&gt; установленный из &lt;strong&gt;backports&lt;/strong&gt;. &lt;br/&gt;

При входе пользователя не копируется шаблон профиля из &lt;strong&gt;/etc/skel&lt;/strong&gt;, хотя директория в &lt;strong&gt;/home&lt;/strong&gt; создается и директории, которые описаны в &lt;strong&gt;/etc/xdg/user-dirs.defaults&lt;/strong&gt; создаются. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-433&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Вот тут немецкие друзья предлагают решение: &lt;a href=&quot;https://forum.ubuntuusers.de/topic/sssd-nutzer-erhalten-keine-dateien-aus-etc-ske/&quot; class=&quot;urlextern&quot; title=&quot;https://forum.ubuntuusers.de/topic/sssd-nutzer-erhalten-keine-dateien-aus-etc-ske/&quot; rel=&quot;ugc nofollow&quot;&gt;https://forum.ubuntuusers.de/topic/sssd-nutzer-erhalten-keine-dateien-aus-etc-ske/&lt;/a&gt; &lt;br/&gt;

В двух словах - модули &lt;strong&gt;pam_kwallet&lt;/strong&gt; и &lt;strong&gt;pam_mkhomedir&lt;/strong&gt; не работают нормально вместе. Поэтому в файлике &lt;strong&gt;/etc/pam.d/sddm&lt;/strong&gt; закомментировать строки с &lt;strong&gt;pam_kwallet&lt;/strong&gt;. &lt;br/&gt;

В результате, при первом логине пользователя в KDE с помощью SDDM, в его профиль нормально копируются файлики из &lt;strong&gt;/etc/skel&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;434-1098&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;аналогичная_проблема_-_ubuntu_1804_gnome&quot;&gt;Аналогичная проблема - Ubuntu 18.04 + Gnome&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При логине профиль создается, но файлы из директории &lt;strong&gt;/etc/skel&lt;/strong&gt; не копируются, хотя директории, которые описаны в &lt;strong&gt;/etc/xdg/user-dirs.defaults&lt;/strong&gt; создаются. &lt;br/&gt;

Оказалось - проблема в порядке следования &lt;strong&gt;pam&lt;/strong&gt;-модулей. &lt;br/&gt;

Из директории &lt;strong&gt;/etc/skel&lt;/strong&gt; файлы копирует модуль &lt;strong&gt;pam_mkhomedir&lt;/strong&gt;.
Для начала - найдем в каком файлике он вызывается.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;grep pam_mkhomedir /etc/pam.d/ -irl&lt;/pre&gt;

&lt;p&gt;
У меня это файл &lt;strong&gt;/etc/pam.d/common-session&lt;/strong&gt;. В нем строка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;session optional pam_mkhomedir.so&lt;/pre&gt;

&lt;p&gt;
идет ПОСЛЕ строки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;session optional pam_mount.so&lt;/pre&gt;

&lt;p&gt;
Я предположил, что модуль &lt;strong&gt;pam_mkhomedir&lt;/strong&gt; не отрабатывает корректно, поскольку на момент его запуска директория пользователя уже должна существовать (чтобы отработал модуль &lt;strong&gt;pam_mount.so&lt;/strong&gt;). &lt;br/&gt;

То есть - чтобы исправить ситуацию нужно переставить строки, чтобы &lt;strong&gt;pam_mkhomedir.so&lt;/strong&gt; запускался ПЕРЕД &lt;strong&gt;pam_mount.so&lt;/strong&gt;. &lt;br/&gt;

В итоге - строки я переставил и всё заработало.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 - Ubuntu 18.04 + Gnome&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f_\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430_-_ubuntu_1804_gnome&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1099-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 01 Sep 2020 14:15:04 +0000</pubDate>
        </item>
        <item>
            <title>notebook_hints</title>
            <link>https://wiki.autosys.tk/linux_faq/notebook_hints</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;состояние_батареи&quot;&gt;Состояние батареи&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Посмотреть текущее состояние батареи в ноутбуке под управлением Linux можно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;upower -i /org/freedesktop/UPower/devices/battery_BAT1&lt;/pre&gt;

&lt;p&gt;
Последняя цифра в пути может быть другой (например - 0)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u0430\u0442\u0430\u0440\u0435\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435_\u0431\u0430\u0442\u0430\u0440\u0435\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-349&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;текущее_потребление&quot;&gt;Текущее потребление&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;upower -d | grep energy-rate&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u043a\u0443\u0449\u0435\u0435_\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;350-433&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;энергопотребление_процессора&quot;&gt;Энергопотребление процессора&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Увидеть текущее энергопотребление процессора (и только процессора) позволит утилита &lt;strong&gt;powerstat&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install powerstat
sudo powerstat -R -c -z&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;434-735&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;энергопотребление_amd_gpu&quot;&gt;Энергопотребление AMD GPU&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Посмотреть текущее энергопотребление AMD GPU можно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo watch -n 0.5  cat /sys/kernel/debug/dri/0/amdgpu_pm_info &lt;/pre&gt;

&lt;p&gt;
Посмотреть существующие профили энергопотребления:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat /sys/class/drm/card0/device/pp_power_profile_mode&lt;/pre&gt;

&lt;p&gt;
Включить какой-то профиль так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;echo &amp;quot;5&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_power_profile_mode&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 AMD GPU&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435_amd_gpu&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;736-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 17 Jun 2021 09:15:55 +0000</pubDate>
        </item>
        <item>
            <title>opensuse_setup_script_yast</title>
            <link>https://wiki.autosys.tk/linux_faq/opensuse_setup_script_yast</link>
            <description>
&lt;p&gt;
Запускать так: &lt;strong&gt;sudo -E ./script.sh&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/bash

####################################
#### Variables
####################################
NEW_HOSTNAME=&amp;quot;szud-opensuse&amp;quot;
NEW_DOMAINNAME=&amp;quot;sigma.sbrf.ru&amp;quot;
DNS_SERVERS=&amp;quot;10.21.7.212 10.21.7.214&amp;quot;
DNS_STATIC_SEARCHLIST=&amp;quot;$NEW_DOMAINNAME sberbank.ru&amp;quot;
AD_USER=&amp;quot;usik-ma&amp;quot;
DOMAIN_CONTROLLERS=$(cat &amp;lt;&amp;lt;EOF
cab-vsp-dc00001.sigma.sbrf.ru
cab-vsp-dc00002.sigma.sbrf.ru
cab-vsp-dc00003.sigma.sbrf.ru
cab-vsp-dc00004.sigma.sbrf.ru
cab-vsp-dc00005.sigma.sbrf.ru
cab-vsp-dc00006.sigma.sbrf.ru
cab-vsp-dc00007.sigma.sbrf.ru
cab-vsp-dc00008.sigma.sbrf.ru
EOF
)
DEFAULT_REALM=&amp;quot;${NEW_DOMAINNAME^^}&amp;quot;
NETBIOS_DOMAIN_NAME=$(echo $DEFAULT_REALM | sed  &amp;#039;1,$ s/\..*//g&amp;#039;)
SDDM_THEME=&amp;quot;elarun&amp;quot;
CA_CERT_PREFIX=&amp;quot;SberBank_Root_CA&amp;quot;

########################################################
### SettingUp Network
########################################################
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable wicked
systemctl start wicked
echo &amp;#039;Waiting for network...&amp;#039;
sleep 10

##############################################
### Setting up NameServers
##############################################
sed -i &amp;quot;/^NETCONFIG_DNS_STATIC_SEARCHLIST=.*\$/ s/=.*$/=\&amp;quot;$DNS_STATIC_SEARCHLIST\&amp;quot;/&amp;quot; /etc/sysconfig/network/config
sed -i &amp;quot;/^NETCONFIG_DNS_STATIC_SERVERS=.*\$/ s/=.*$/=\&amp;quot;$DNS_SERVERS\&amp;quot;/&amp;quot; /etc/sysconfig/network/config
sed -i &amp;quot;/^NETCONFIG_DNS_POLICY=.*\$/ s/=.*$/=\&amp;quot;auto\&amp;quot;/&amp;quot; /etc/sysconfig/network/config

###############################################
### Setting HOSTNAME, DOMAINNAME
###############################################
hostname $NEW_HOSTNAME
domainname $NEW_DOMAINNAME
echo $NEW_HOSTNAME.$NEW_DOMAINNAME | sudo tee /etc/HOSTNAME
echo $NEW_HOSTNAME.$NEW_DOMAINNAME | sudo tee /etc/hostname
sed -i &amp;#039;/^127./D&amp;#039; /etc/hosts
echo &amp;quot;127.0.0.1 `hostname`.`domainname` `hostname` localhost&amp;quot; | sudo tee -a /etc/hosts
echo &amp;quot;127.0.0.2 `hostname`.`domainname` `hostname`&amp;quot; | sudo tee -a /etc/hosts

########################################
### Reload network settings
########################################
netconfig update -f

####################################
#### Setting Software Repos
####################################
zypper repos | grep Yes | cut -f3 -d &amp;#039;|&amp;#039; | sed -e &amp;quot;s/ //&amp;quot; | awk &amp;#039;{print &amp;quot;zypper mr -dRK &amp;quot; $1}&amp;#039; | sudo bash
zypper ar -G -c -n &amp;quot;SB-OpenSUSE-oss&amp;quot; -f http://10.23.48.12/opensuse/distribution/leap/42.1/oss/suse sb-opensuse-oss
zypper mr -erk -p 5 SB-OpenSUSE-oss
zypper ar -G -c -n &amp;quot;SB-OpenSUSE-update-oss&amp;quot; -f http://10.23.48.12/opensuse/update/leap/42.1/oss sb-opensuse-update-oss
zypper mr -erk -p 5 SB-OpenSUSE-update-oss
zypper ar -G -c -n &amp;quot;SB-OpenSUSE-packman&amp;quot; -f http://10.23.48.12/opensuse/packman/openSUSE_Leap_42.1 sb-opensuse-packman
zypper mr -erk -p 5 SB-OpenSUSE-packman
zypper ar -G -c -n &amp;quot;SB-OpenSUSE-Sky&amp;quot; http://10.23.48.12/opensuse/tel.red/repos/opensuse/42.1/ sb-opensuse-sky
zypper mr -erk -p 5 SB-OpenSUSE-Sky
zypper ar -G -c -n &amp;quot;SB-OpenSUSE-YandexBrowser-beta&amp;quot; -f http://10.23.48.12/opensuse/repo.yandex.ru/yandex-browser/rpm/beta/x86_64 sb-opensuse-yandexbrowser-beta
zypper mr -erk -p 5  SB-OpenSUSE-YandexBrowser-beta
#zypper ar -G -c -n &amp;quot;nVidia Graphics Drivers&amp;quot; http://download.nvidia.com/opensuse/leap/42.1 nVidia-Graphics-Drivers
#zypper mr -erk -p 5 nVidia-Graphics-Drivers
#zypper ar -G -c -n &amp;quot;AMD/ATI Graphics Drivers&amp;quot; -f http://geeko.ioda.net/mirror/amd-fglrx/openSUSE_Leap_42.1/  AMD-Graphics-Drivers
#zypper mr -erk -p 5 AMD-Graphics-Drivers

zypper clean
zypper -n up
zypper -n dup
zypper -n in nano yast2-online-update krb5-client yandex-browser-beta mozilla-nss-tools sky kernel-devel pam_krb5 openssl
zypper -n in --type pattern devel_basis

#sudo zypper -n in xrdp mono-complete

###############################################
### Setup Services
###############################################
systemctl enable xrdp 
systemctl enable xrdp-sesman 
systemctl enable sshd 
systemctl enable ntpd 

#systemctl enable SuSEfirewall2 
#SuSEfirewall2 start  
systemctl disable SuSEfirewall2
systemctl stop SuSEfirewall2

systemctl start sshd
systemctl start xrdp 
systemctl start xrdp-sesman
systemctl start ntpd 

#############################################
#### Setting sudo
#############################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/domain_users
localuser       ALL=(ALL) ALL
%$NETBIOS_DOMAIN_NAME\\\\domain\ users          ALL=(ALL) ALL 
%domain\ users          ALL=(ALL) ALL
%$NETBIOS_DOMAIN_NAME\\\\domain\ admins      ALL=(ALL) NOPASSWD: ALL 
%domain\ admins      ALL=(ALL) NOPASSWD: ALL
EOF

sed -i &amp;quot;/^Defaults\ targetpw.*\$/ s/^/#/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^Defaults\ env_reset.*\$/ s/\ env_reset/\ \!env_reset/&amp;quot; /etc/sudoers
sed -i &amp;quot;/^ALL.*ALL=(ALL).*\$/ s/^/#/&amp;quot; /etc/sudoers

#########################################
### Setup NTP servers
#########################################
echo &amp;quot;Setting ntp client settings...&amp;quot;
yast2 ntp-client delete server=&amp;quot;0.opensuse.pool.ntp.org&amp;quot;
yast2 ntp-client delete server=&amp;quot;1.opensuse.pool.ntp.org&amp;quot;
yast2 ntp-client delete server=&amp;quot;2.opensuse.pool.ntp.org&amp;quot;
yast2 ntp-client delete server=&amp;quot;3.opensuse.pool.ntp.org&amp;quot;

for i in $DOMAIN_CONTROLLERS;
do 
yast2 ntp-client add server=&amp;quot;$i iburst&amp;quot;
done

########################################
#### Install Citrix VDA
########################################
#sudo zypper -n in ./XenDesktopVDA-7.12.0.375-1.sle12_1.x86_64.rpm
#/opt/Citrix/VDA/sbin/ctxsetup.sh

#########################################
### Setup Kerberos /etc/krb5.conf
#########################################
LIBDEFAULTS=$(cat &amp;lt;&amp;lt;EOF
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = false
default_realm = $DEFAULT_REALM
clockskew = 300
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
EOF
)

REALMS_KDC=$(for i in $DOMAIN_CONTROLLERS; do echo &amp;quot;kdc = $i&amp;quot;;done)

REALMS=$(cat &amp;lt;&amp;lt;EOF

[realms]
$DEFAULT_REALM = {
$REALMS_KDC
default_domain = $DEFAULT_REALM
}
EOF
)

DOMAIN_REALM=$(cat &amp;lt;&amp;lt;EOF

[domain_realm]
.$NEW_DOMAINNAME = $DEFAULT_REALM 
$NEW_DOMAINNAME = $DEFAULT_REALM

[appdefaults]                                                         
pam = {                                                               
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        minimum_uid = 1
}
        
EOF
)

echo &amp;quot;$LIBDEFAULTS&amp;quot; &amp;gt; /etc/krb5.conf
echo &amp;quot;$REALMS&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf
echo &amp;quot;$DOMAIN_REALM&amp;quot; &amp;gt;&amp;gt; /etc/krb5.conf

########################################
#### Configure /etc/samba/smb.conf
########################################
SMB_CONF=$(cat &amp;lt;&amp;lt;EOF
# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
[global]
        workgroup = $NETBIOS_DOMAIN_NAME
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        printcap cache time = 750
        cups options = raw
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        logon path = \\%L\profiles\.msprofile
        logon home = \\%L\%U\.9xprofile
        logon drive = P:
        usershare allow guests = No
        idmap gid = 10000-20000
        idmap uid = 10000-20000
        realm = $DEFAULT_REALM
        security = ADS
        template homedir = /home/%D/%U
        template shell = /bin/bash
        usershare max shares = 100
        winbind offline logon = true
        winbind refresh tickets = true
        kerberos method = secrets and keytab
        winbind use default domain = yes
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
[profiles]
        comment = Network Profiles Service
        path = %H
        read only = No
        store dos attributes = Yes
        create mask = 0600
        directory mask = 0700
[users]
        comment = All users
        path = /home
        read only = No
        inherit acls = Yes
        veto files = /aquota.user/groups/shares/
[groups]
        comment = All groups
        path = /home/groups
        read only = No
        inherit acls = Yes
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @ntadmin root
        force group = ntadmin
        create mask = 0664
        directory mask = 0775
EOF
)

mv /etc/samba/smb.conf.bak /etc/samba/smb.conf
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
echo &amp;quot;$SMB_CONF&amp;quot; &amp;gt; /etc/samba/smb.conf

###############################################
#### Configure /etc/security/pam_winbind.conf
###############################################
PAM_WINBIND=$(cat &amp;lt;&amp;lt;EOF
        cached_login = yes
        krb5_auth = yes
        krb5_ccache_type = FILE
EOF
)

mv /etc/security/pam_winbind.conf.bak /etc/security/pam_winbind.conf
cp /etc/security/pam_winbind.conf /etc/security/pam_winbind.conf.bak
while read line
do
        echo $line &amp;gt;&amp;gt; /etc/security/pam_winbind.conf_new
        echo $line | grep -q &amp;quot;\[global\]&amp;quot; 
        [ $? -eq 0 ] &amp;amp;&amp;amp; echo &amp;quot;$PAM_WINBIND&amp;quot; &amp;gt;&amp;gt; /etc/security/pam_winbind.conf_new
done &amp;lt; /etc/security/pam_winbind.conf
mv /etc/security/pam_winbind.conf_new /etc/security/pam_winbind.conf

########################################
#### Configure /etc/nsswitch.conf
########################################
sed -i &amp;#039;/^passwd:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^group:.*compat$/ s/$/ winbind/&amp;#039; /etc/nsswitch.conf
sed -i &amp;#039;/^hosts:/ s/:.*$/: files dns/&amp;#039; /etc/nsswitch.conf

##########################################
#### Configure PAM
##########################################
pam-config --add --winbind --mkhomedir 
#--krb5

#################################################
### Disable autologin
#################################################
sed -i &amp;quot;/^DISPLAYMANAGER_AUTOLOGIN=.*\$/ s/=.*$/=\&amp;quot;\&amp;quot;/&amp;quot; /etc/sysconfig/displaymanager

#################################################
#### Set SDDM Theme to allow input Username
#################################################
sed -i &amp;quot;/^Current=.*\$/ s/=.*$/=$SDDM_THEME/&amp;quot; /etc/sddm.conf

########################################
### Add Certificates
###########################################
openssl s_client -showcerts -connect ya.ru:443 &amp;lt;/dev/null &amp;gt; chain.pem
csplit -k -f $CA_CERT_PREFIX ./chain.pem &amp;#039;/END CERTIFICATE/+1&amp;#039; {10}
find ./ -iname $CA_CERT_PREFIX\* -type f -exec grep -F -L &amp;#039;END CERTIFICATE&amp;#039; &amp;#039;{}&amp;#039; + | xargs -d &amp;#039;\n&amp;#039; rm
for file in &amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo mv &amp;quot;$file&amp;quot; /etc/pki/trust/anchors/&amp;quot;$file&amp;quot;.pem ; done
for file in /etc/pki/trust/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ; do sudo cp &amp;quot;$file&amp;quot; /etc/ssl/certs/ ; done                                                                                              
c_rehash /etc/ssl/certs/                                                                                                                                                                  
c_rehash /etc/pki/trust/anchors/                                                                                                                                                          
update-ca-certificates                                                                                                                                                                    
rm -f ./chain.pem                                                                                                                                                                              
                                                                                                                                                                                               
#######################################################                                                                                                                                        
#### Import CA Certificates into Browsers                                                                                                                                                      
#   http://blog.xelnor.net/firefox-systemcerts/                                                                                                                                                
#######################################################                                                                                                                                        
HOMEDIR=$(getent passwd $SUDO_USER | cut -d: -f6)                                                                                                                                              
zypper -n install mozilla-nss-tools                                                                                                                                                       
rm -Rf $HOMEDIR/.mozilla                                                                                                                                                                  
rm -Rf $HOMEDIR/.pki                                                                                                                                                                      
                                                                                                                                                                                               
########################################################                                                                                                                                       
#### Create and fill cert8.db in Firefox Profile                                                                                                                                               
########################################################                                                                                                                                       
killall firefox                                                                                                                                                                           
sudo -u  $SUDO_USER firefox -CreateProfile default
FirefoxProfileDir=$(find $HOMEDIR&amp;#039;/.mozilla/firefox/&amp;#039; -iname &amp;#039;*.default&amp;#039;);
for certificateFile in /etc/pki/trust/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d ${FirefoxProfileDir}
done
chmod -R a+rw $HOMEDIR/.mozilla/firefox/*

################################################################################
#### Import certificates into nssdb for Chromium engine
################################################################################
mkdir --parents $HOMEDIR/.pki/nssdb
echo 1q2w3e4r | sudo tee $HOMEDIR/.pki/nssdb/password-file
certutil -N -f $HOMEDIR/.pki/nssdb/password-file -d $HOMEDIR/.pki/nssdb
for certificateFile in /etc/pki/trust/anchors/&amp;quot;$CA_CERT_PREFIX&amp;quot;* ;
do
 certutil -f $HOMEDIR/.pki/nssdb/password-file -A -n &amp;quot;${certificateFile}&amp;quot; -t &amp;quot;TCu,Cuw,Tuw&amp;quot; -i ${certificateFile} -d sql:$HOMEDIR/.pki/nssdb
done
chmod -R a+rw $HOMEDIR/.pki/nssdb/*

#########################################################
### Copy databases with imported certs to default profile
#########################################################
rm -Rf /etc/skel/.pki/nssdb/*
rm -Rf /etc/skel/.mozilla/firefox/*
mkdir --parents /etc/skel/.pki/nssdb/
cp -Rf $HOMEDIR/.pki/nssdb/* /etc/skel/.pki/nssdb/
mkdir --parents /etc/skel/.mozilla/firefox/
cp -Rf $HOMEDIR/.mozilla/firefox/* /etc/skel/.mozilla/firefox/

#########################################################
### Disable KDEWallet By Default
#########################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/skel/.config/kwalletrc
[Wallet]
Enabled=false
EOF

mkdir --parents /etc/skel/.kde/share/config/
cp /etc/skel/.config/kwalletrc /etc/skel/.kde/share/config/kwalletrc

############################################################
#### Install Adobe Flash
############################################################
zypper ar -G -c -n &amp;quot;Adobe Software Repository&amp;quot; -f http://linuxdownload.adobe.com/linux/x86_64/ Adobe
zypper -n rm  flash-player-24.0.0.221-1.1.x86_64
zypper mr -dRK sb-opensuse-packman
zypper -n in  adobe-release-x86_64 flash-pl*
zypper mr -eRK sb-opensuse-packman

############################################################
### Enable Autostart apps
############################################################
mkdir --parents /etc/skel/.config/autostart/
cp /usr/share/applications/sky.desktop /etc/skel/.config/autostart/

########################################
### Join AD Domain
########################################
systemctl enable nmb.service
systemctl enable smb.service
systemctl enable winbind.service

service nmb restart
service smb restart
service winbind restart

ping -c 5 $DOMAIN_CONTROLLERS &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;amp; net ads join -U $AD_USER || echo &amp;quot;Join AD failed. Ping Domain Controller failed&amp;quot;
service winbind restart &amp;amp;&amp;amp; service nmb restart &amp;amp;&amp;amp; service smb restart
wbinfo -P
wbinfo -t
wbinfo -n=$computername
&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;setup_vda&quot;&gt;Setup VDA&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
CTX_XDL_SUPPORT_DDC_AS_CNAME=N \
CTX_XDL_DDC_LIST=&amp;quot;v-szud-ctxdc-01.sigma.sbrf.ru v-szud-ctxdc-02.sigma.sbrf.ru&amp;quot; \
CTX_XDL_VDA_PORT=80 \
CTX_XDL_REGISTER_SERVICE=Y \
CTX_XDL_ADD_FIREWALL_RULES=Y \
CTX_XDL_AD_INTEGRATION=1 \
CTX_XDL_HDX_3D_PRO=N \
CTX_XDL_VDI_MODE=Y \
CTX_XDL_SITE_NAME=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_LDAP_LIST=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_SEARCH_BASE=&amp;#039;&amp;lt;none&amp;gt;&amp;#039; \
CTX_XDL_START_SERVICE=Y \
/opt/Citrix/VDA/sbin/ctxsetup.sh&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setup VDA&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setup_vda&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17152-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>sddm_to_lightdm_change_in_ubuntu</title>
            <link>https://wiki.autosys.tk/linux_faq/sddm_to_lightdm_change_in_ubuntu</link>
            <description>
&lt;p&gt;
Если на системе установлен &lt;strong&gt;KDE&lt;/strong&gt; + &lt;strong&gt;SDDM&lt;/strong&gt;, но нужно перейти на &lt;strong&gt;Lightdm&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install lightdm &lt;/pre&gt;

&lt;p&gt;
В процессе установки скрипт предложить выбрать новый дефолтный &lt;strong&gt;Display Manager&lt;/strong&gt;. Выбираем &lt;strong&gt;Lightdm&lt;/strong&gt; &lt;br/&gt;

Затем перезагружаемся и пробуем зайти. Если &lt;strong&gt;Lightdm&lt;/strong&gt; при старте сессии говорит, что
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Failed to start session&lt;/pre&gt;

&lt;p&gt;
значит отсутствует файлик с описанием запускаемой сессии. &lt;br/&gt;

Делаем так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#########################################################
### Set lightdm for kde-plasma-kf5 session
### user-session - /usr/share/xsessions/plasma.desktop
#########################################################
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/lightdm/lightdm.conf
[SeatDefaults]
user-session=plasma
EOF&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:26 +0000</pubDate>
        </item>
        <item>
            <title>ubuntu-14-04-в-домене-active-directory-windows</title>
            <link>https://wiki.autosys.tk/linux_faq/ubuntu-14-04-%D0%B2-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B5-active-directory-windows</link>
            <description>
&lt;p&gt;
Итак на моем рабочем компе навернулась Windows 7 и я решил заменить ее на Ubuntu 14.04.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Установил Ubuntu 14.04 Server x64, затем установил KDE desktop:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install kubuntu-dekstop&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;введение_в_домен_ad&quot;&gt;Введение в домен AD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сначала нужно сделать несколько подготовительных вещей.&lt;br/&gt;

1. Убедиться что имя локального пользователя Ubuntu не совпадает с именем доменного админа.&lt;br/&gt;

2. Прописать &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; и &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-суффикс в настройках сетевого соединения. В новых версиях Ubuntu эти параметры задаются для сетевых интерфейсов и прописываются в &lt;strong&gt;/etc/network/interfaces&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# The primary network interface
auto eth0
iface eth0 inet static
address _IP_ADDRESS_
netmask _NETMASK_
gateway _GW_IP_ADDRESS_
dns-nameservers IP_DNS1_ _IP_DNS2_
dns-domain domain.name
dns-search domain.name&lt;/pre&gt;

&lt;p&gt;
Теперь можно установить необходимое ПО и ввести Ubuntu в домен.&lt;br/&gt;

Я использовал &lt;strong&gt;Power Broker Open Edition&lt;/strong&gt; - &lt;a href=&quot;http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True&quot; class=&quot;urlextern&quot; title=&quot;http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True&quot; rel=&quot;ugc nofollow&quot;&gt;http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True&lt;/a&gt;.&lt;br/&gt;

Этот пакет - коммерческий аналог &lt;strong&gt;likewise-open&lt;/strong&gt;. Я ставлю бесплатную версию, которая несколько менее функциональна, чем платная - частности она не поддерживает GPO.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Скачал и установил:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/pbiso/850/pbis-open-8.5.0.153.linux.x86_64.deb.sh
chmod a+x pbis-open-8.5.0.153.linux.x86_64.deb.sh
sudo ./pbis-open-8.5.0.153.linux.x86_64.deb.sh&lt;/pre&gt;

&lt;p&gt;
При установке на вопрос о “legacy links” я ответил &lt;strong&gt;No&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
После установки сразу можно вводить машину в домен AD:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /opt/pbis/bin/domainjoin-cli join --disable ssh domainName ADjoinAccount&lt;/pre&gt;

&lt;p&gt;
Тут &lt;strong&gt;domainName&lt;/strong&gt; - имя домена (должно нормально резолвиться), а &lt;strong&gt;ADjoinAccount&lt;/strong&gt; - имя доменной учетной записи, имеющей права на ввод машины в домен.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Теперь нужно немного отредактировать файлик &lt;strong&gt;/etc/pam.d/common-session&lt;/strong&gt;. Там находим строчку &lt;strong&gt;session sufficient pam_lsass.so&lt;/strong&gt;, комментируем ее и в самый конец файла дописываем:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;session [success=ok default=ignore] pam_lsass.so&lt;/pre&gt;

&lt;p&gt;
В конец файла эту строку нужно помещать для того, чтобы нормально отрабатывали опциональные модули, а  без &lt;strong&gt;success=ok default=ignore&lt;/strong&gt; пользователя будет пускать в систему, но KDE можно будет запустить только после логина вручную.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
После этого можно входить в систему с учетной записью, но по умолчанию KDE не предлагает вводить имя пользователя, а предлагает выбрать пользователя машкой и вводить пароль.&lt;br/&gt;

Отключить такое безобразие можно:&lt;br/&gt;

“Пуск” → Computer → System Settings → Login Screen (Light GDM). &lt;br/&gt;

Там выбираем тему &lt;strong&gt;Classic&lt;/strong&gt;.&lt;br/&gt;

Все. &lt;br/&gt;

Теперь можно перезагрузиться и логиниться с доменной учетной записью.&lt;br/&gt;

ВВодить имя можно как в виде &lt;strong&gt;DOMAIN\username&lt;/strong&gt;, так и в виде &lt;strong&gt;Username@domain.local&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Все. Дальше можно работать в домене. :) Логиниться с учетной записью вида: &lt;strong&gt;DOMAIN\user&lt;/strong&gt; как локально, так и по SSH.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0434\u043e\u043c\u0435\u043d AD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435_\u0432_\u0434\u043e\u043c\u0435\u043d_ad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;307-4278&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;некоторые_дополнительные_настройки&quot;&gt;Некоторые дополнительные настройки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Список настраиваемых параметров PBIS можно получить командой:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/opt/pbis/bin/config --list
[Eventlog]
        AllowDeleteTo
        AllowReadTo
        AllowWriteTo
        MaxDiskUsage
        MaxEventLifespan
        MaxNumEvents
[Lsass]
        DomainSeparator
        SpaceReplacement
        EnableEventlog
        LogInvalidPasswords
        Providers
[Lsass - PAM]
        DisplayMotd
        PAMLogLevel
        UserNotAllowedError
[Lsass - Active Directory provider]
        AssumeDefaultDomain
        CreateHomeDir
        CreateK5Login
        SyncSystemTime
        TrimUserMembership
        LdapSignAndSeal
        LogADNetworkConnectionEvents
        NssEnumerationEnabled
        NssGroupMembersQueryCacheOnly
        NssUserMembershipQueryCacheOnly
        RefreshUserCredentials
        CacheEntryExpiry
        DomainManagerCheckDomainOnlineInterval
        DomainManagerUnknownDomainCacheTimeout
        MachinePasswordLifespan
        MemoryCacheSizeCap
        HomeDirPrefix
        HomeDirTemplate
        RemoteHomeDirTemplate
        HomeDirUmask
        LoginShellTemplate
        SkeletonDirs
        UserDomainPrefix
        DomainManagerIgnoreAllTrusts
        DomainManagerIncludeTrustsList
        DomainManagerExcludeTrustsList
        RequireMembershipOf
        SmartcardEnabled
        SmartcardRequiredForLogin
[Lsass - Local provider]
        Local_AcceptNTLMv1
        Local_HomeDirTemplate
        Local_HomeDirUmask
        Local_LoginShellTemplate
        Local_SkeletonDirs
[User Monitor]
        UserMonitorCheckInterval
[System Initialization]
        LsassAutostart
        EventlogAutostart
        GpagentAutostart&lt;/pre&gt;

&lt;p&gt;
 &lt;br/&gt;

Чтобы не добавлять название домена к имени учетной записи при регистрации достаточно активировать “AssumeDefaultDomain”.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /opt/pbis/bin/config AssumeDefaultDomain true&lt;/pre&gt;

&lt;p&gt;
Проверить текущую установку можно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo /opt/pbis/bin/config --detail AssumeDefaultDomain
$ sudo /opt/pbis/bin/config --show AssumeDefaultDomain&lt;/pre&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;6558-6584&amp;quot;} --&gt;
&lt;p&gt;
При использовании этой опции в &lt;strong&gt;/etc/sudoers&lt;/strong&gt; и в &lt;strong&gt;/etc/passwd&lt;/strong&gt; - с именем домена (pre-Windows200) в формате &lt;strong&gt;DOMAIN_NAME\username&lt;/strong&gt; с одним слешем. В обоих файлах должно быть одинаково. Если добавлять только в &lt;strong&gt;sudoers&lt;/strong&gt;, то надо добавлять без имени домена.^&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Также можно добавить доменного пользователя в файлик &lt;strong&gt;/etc/sudoers&lt;/strong&gt;, для того, чтобы работал &lt;strong&gt;sudo&lt;/strong&gt;.&lt;br/&gt;

Открываем &lt;strong&gt;/etc/sudoers&lt;/strong&gt; и добавляем туда:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DOMAIN\\username     ALL=(ALL:ALL) ALL&lt;/pre&gt;

&lt;p&gt;
Тут нужно обратить внимание на двойной слеш в качестве разделителя &lt;strong&gt;\\&lt;/strong&gt;. Без него не работает.&lt;br/&gt;

Например, для добавления доменных админов нужно добавить строку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%DOMAIN\\domain^admins     ALL=(ALL:ALL) ALL&lt;/pre&gt;

&lt;p&gt;
Обращаем внимание на двойной слеш &lt;strong&gt;\\&lt;/strong&gt; и на &lt;strong&gt;^&lt;/strong&gt; вместо пробела.
&lt;/p&gt;

&lt;p&gt;
Еще может понадобиться заменить &lt;strong&gt;shell&lt;/strong&gt; (/bin/sh), устанавливаемый по-умолчанию на &lt;strong&gt;/bin/bash&lt;/strong&gt;.&lt;br/&gt;

Чтобы это сделать выполняем:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435_\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;4279-8015&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;автоматическое_монтирование_ресурсов_-_pammount&quot;&gt;Автоматическое монтирование ресурсов - pam.mount&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Теперь можно настроить автоматическое монтирование сетевых ресурсов, например папки с профилем пользователя.&lt;br/&gt;

Тут возникает небольшое затруднение. Монтировать ресурсы можно только от имени суперпользователя. Поэтому нельзя просто положить в rc.local строку вида &lt;strong&gt;mount -t cifs //server /mountpoint&lt;/strong&gt;. &lt;br/&gt;

К счастью есть PAM-модуль &lt;strong&gt;pam_mount&lt;/strong&gt;, который позволяет монтировать ресурсы с повышенными привилегиями на этапе входа пользователя в систему. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Устанавливаем модуль:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install libpam-mount&lt;/pre&gt;

&lt;p&gt;
Оказалось, что с установками по-умолчанию модуль &lt;strong&gt;pam_mount.so&lt;/strong&gt; не монтирует ресурсы. Для того, чтобы модуль работал корректно, нужно отредактировать файл &lt;strong&gt;/etc/pam.d/common-session&lt;/strong&gt;. &lt;br/&gt;

По-умолчанию, модуль &lt;strong&gt;pam_mount.so&lt;/strong&gt; имеет флаг &lt;strong&gt;optional&lt;/strong&gt; и располагается в файле &lt;strong&gt;/etc/pam.d/common-session&lt;/strong&gt; после модуля &lt;strong&gt;pam_lsass.so&lt;/strong&gt;, который имеет флаг &lt;strong&gt;sufficient&lt;/strong&gt;. Таким образом модуль опциональный модуль &lt;strong&gt;pam_mount.so&lt;/strong&gt;  игнорируется, при корректном прохождении  достаточного для аутентификации модуля &lt;strong&gt;pam_lsass.so&lt;/strong&gt;. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Дальше конфигурируем  &lt;strong&gt;pam_mount&lt;/strong&gt;. При входе пользователя обрабатываются два файла - глобальный &lt;strong&gt;/etc/security/pam_mount.conf.xml&lt;/strong&gt; и файл &lt;strong&gt;~/.pam_mount.conf.xml&lt;/strong&gt; с ресурсами, монтируемыми индивидуально каждому пользователю.&lt;br/&gt;

Этот файл довольно неплохо откомментирован, поэтому подробно описывать не имеет смысла и реально нужно редактировать единственную строку:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;volume fstype=&amp;quot;cifs&amp;quot; server=&amp;quot;servername&amp;quot; path=&amp;quot;shared&amp;quot; mountpoint=&amp;quot;~/shared&amp;quot; options=&amp;quot;nodev,nosuid&amp;quot;/&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Соотвественно отредактировать параметры &lt;strong&gt;server&lt;/strong&gt;, &lt;strong&gt;path&lt;/strong&gt; и &lt;strong&gt;mountpoint&lt;/strong&gt;.&lt;br/&gt;

При этом, &lt;strong&gt;path&lt;/strong&gt; не должне начинаться с “/”, а сразу указывать на папку, но при этом может указывать на вложенную папку. То есть если в Windows адрес файла: &lt;strong&gt;&lt;a href=&quot;file://///server/shared/directory1/file&quot; class=&quot;windows&quot; title=&quot;\\server\shared\directory1\file&quot;&gt;\\server\shared\directory1\file&lt;/a&gt;.txt&lt;/strong&gt;, то для того чтобы он был виден в смонтированной папке - &lt;strong&gt;path&lt;/strong&gt; должен быть &lt;strong&gt;path=“shared\directory1”&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 - pam.mount&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435_\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432_-_pammount&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;8016-11157&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;pam_mount_и_сессия_ssh&quot;&gt;Pam_mount и сессия SSH&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для того, чтобы &lt;strong&gt;pam_mount&lt;/strong&gt; корректно работал в сессии SSH  нужно отредактировать конфигурацию сервера SSH - файл &lt;strong&gt;/etc/ssh/sshd_config&lt;/strong&gt;.&lt;br/&gt;

Параметру &lt;strong&gt;ChallengeResponseAuthentication&lt;/strong&gt; дать значение &lt;strong&gt;no&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Без этой правки, из-за особенностей работы OpenSSH при подключении по SSH ресурсы не монтируются с помощью &lt;strong&gt;pam_mount&lt;/strong&gt; с ошибкой:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;conv-&amp;gt;conv(...): Conversation error&lt;/pre&gt;

&lt;p&gt;
Некоторые подробности тут:&lt;br/&gt;

&lt;a href=&quot;http://community.centrify.com/t5/DirectControl-Express-for-UNIX/Try-to-auto-mount-cifs-home-dir-on-Ubuntu-using-Centrify-AD-Pam/td-p/8640&quot; class=&quot;urlextern&quot; title=&quot;http://community.centrify.com/t5/DirectControl-Express-for-UNIX/Try-to-auto-mount-cifs-home-dir-on-Ubuntu-using-Centrify-AD-Pam/td-p/8640&quot; rel=&quot;ugc nofollow&quot;&gt;http://community.centrify.com/t5/DirectControl-Express-for-UNIX/Try-to-auto-mount-cifs-home-dir-on-Ubuntu-using-Centrify-AD-Pam/td-p/8640&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=926#c35&quot; class=&quot;urlextern&quot; title=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=926#c35&quot; rel=&quot;ugc nofollow&quot;&gt;https://bugzilla.mindrot.org/show_bug.cgi?id=926#c35&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=688&quot; class=&quot;urlextern&quot; title=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=688&quot; rel=&quot;ugc nofollow&quot;&gt;https://bugzilla.mindrot.org/show_bug.cgi?id=688&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Также, это неприятное обстоятельство можно обойти выполнив в сессии SSH команду:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;su -l $USER&lt;/pre&gt;

&lt;p&gt;
То есть фактически залогинившись в сессии SSH еще раз с именем текущего пользователя. &lt;br/&gt;

В этому случае OpenSSH не принимает участия создании сессии и ресурсы монтируются. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Pam_mount \u0438 \u0441\u0435\u0441\u0441\u0438\u044f SSH&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pam_mount_\u0438_\u0441\u0435\u0441\u0441\u0438\u044f_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;11158-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 22 Jul 2019 10:16:56 +0000</pubDate>
        </item>
        <item>
            <title>udev_network_adapters_names</title>
            <link>https://wiki.autosys.tk/linux_faq/udev_network_adapters_names</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После смены ноутбука слетели все пароли Wi-Fi на Ubuntu 24.04. &lt;br/&gt;

Оказалось, в конфигах подключений Network Manager хранит имя девайса, а при смене адаптера оно изменилось, но это не глюк - это фича! &lt;br/&gt;

systemd/udev predictable device names - &lt;a href=&quot;https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/&quot; class=&quot;urlextern&quot; title=&quot;https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/&lt;/a&gt; &lt;br/&gt;

У меня было имя адаптера &lt;strong&gt;wlp2s0&lt;/strong&gt;, а стало - &lt;strong&gt;wlp195s0&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-578&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;как_задать_сетевому_адаптеру_нужное_прежнее_имя&quot;&gt;Как задать сетевому адаптеру нужное (прежнее) имя&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Смотрим какие есть свойства у адаптера:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; udevadm info /sys/class/net/wlp195s0 

P: /devices/pci0000:00/0000:00:02.3/0000:c3:00.0/net/wlp195s0
M: wlp195s0
R: 0
U: net
T: wlan
I: 2
E: DEVPATH=/devices/pci0000:00/0000:00:02.3/0000:c3:00.0/net/wlp195s0
E: SUBSYSTEM=net
E: DEVTYPE=wlan
E: INTERFACE=wlp195s0
E: IFINDEX=2
E: USEC_INITIALIZED=12481317
E: ID_NET_DRIVER=mt7925e
E: ID_MM_CANDIDATE=1
E: ID_NET_NAMING_SCHEME=v255
E: ID_NET_NAME_MAC=wlxa8e291162c6a
E: ID_NET_NAME_PATH=wlp195s0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x14c3
E: ID_MODEL_ID=0x7925
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Network controller
E: ID_VENDOR_FROM_DATABASE=MEDIATEK Corp.
E: ID_PATH=pci-0000:c3:00.0
E: ID_PATH_TAG=pci-0000_c3_00_0
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: ID_NET_NAME=wlp195s0
E: NM_UNMANAGED=0
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/wlp195s0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:&lt;/pre&gt;

&lt;p&gt;
И формулируем какое-нибудь правило:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo nano /etc/udev/rules.d/70-persistent-net.rules&lt;/pre&gt;

&lt;p&gt;
по mac-адресу
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, ATTR{address}==&amp;quot;00:11:22:33:44:55&amp;quot;, NAME=&amp;quot;net0&amp;quot;&lt;/pre&gt;

&lt;p&gt;
по vendor/device
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, ATTRS{vendor}==&amp;quot;0x14c3&amp;quot;, ATTRS{device}==&amp;quot;0x7925&amp;quot;, NAME=&amp;quot;wlp2s0&amp;quot;&lt;/pre&gt;

&lt;p&gt;
И применим
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo udevadm control --reload
sudo udevadm trigger&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u043a \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443 \u043d\u0443\u0436\u043d\u043e\u0435 (\u043f\u0440\u0435\u0436\u043d\u0435\u0435) \u0438\u043c\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a_\u0437\u0430\u0434\u0430\u0442\u044c_\u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443_\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443_\u043d\u0443\u0436\u043d\u043e\u0435_\u043f\u0440\u0435\u0436\u043d\u0435\u0435_\u0438\u043c\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;579-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 04 Jun 2025 08:23:19 +0000</pubDate>
        </item>
        <item>
            <title>whatsapp_extension</title>
            <link>https://wiki.autosys.tk/linux_faq/whatsapp_extension</link>
            <description>
&lt;p&gt;
Вот расширение для &lt;strong&gt;Firefox&lt;/strong&gt;, которое предоставляет доступ к web-интерфейсу &lt;strong&gt;WhatsApp&lt;/strong&gt;. &lt;br/&gt;

Мне оно нравится больше всех, однако оно пропало из коллекции расширений: &lt;a href=&quot;https://wiki.autosys.tk/_media/linux_faq/jid1-uqweawsca3fxuo_jetpack.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;linux_faq:jid1-uqweawsca3fxuo_jetpack.zip (53.5 KB)&quot;&gt; Desktop messenger for WhatsApp™ 0.2.7&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>xenserver-6-2-в-виртуальнои-машине-kvm-на-базе-ubuntu-14-04-nested-guest ...</title>
            <link>https://wiki.autosys.tk/linux_faq/xenserver-6-2-%D0%B2-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B8-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B5-kvm-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-ubuntu-14-04-nested-guest-vm-in-kvm</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;преамбула&quot;&gt;Преамбула&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для тестирования разнообразных виртуальных конфигураций обычно требуется несколько физических хостов. Это далеко не всегда удобно, а иногда и невозможно. &lt;br/&gt;

Выход есть - это “вложенные” (nested) виртуальные машины, когда есть гипервизор установленный непосредственно на железо(уровень L0), в нем запускается виртуальная машина с другим гипервизором (уровень L1), а затем в гипервизоре уровня L1 запускаются еще виртуальные машины. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0435\u0430\u043c\u0431\u0443\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0435\u0430\u043c\u0431\u0443\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-811&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;возможные_пути_решения&quot;&gt;Возможные пути решения&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Nested виртуализация поддерживается VMWare ESXi 5.x. Об этом есть статьи в интернете. И у меня немного тоже есть - &lt;a href=&quot;https://wiki.autosys.tk/linux_faq/vmware.%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B2%D0%B8%D0%B7%D0%BE%D1%80%D0%BE%D0%B2-%D0%B2-esxi-5&quot; class=&quot;wikilink2&quot; title=&quot;linux_faq:vmware.запуск-других-гипервизоров-в-esxi-5&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;linux_faq:vmware.запуск-других-гипервизоров-в-esxi-5&quot;&gt;Запуск других гипервизоров в ESXi 5&lt;/a&gt;.&lt;br/&gt;

Также “вложенные” гипервизоры можно запускать в KVM. Я попытался сделать это в Ubuntu 14.04. &lt;br/&gt;

Обязательное условие - поддержка процессором технологий Intel VT-x или AMD-V, то есть наличие флага &lt;strong&gt;vmx&lt;/strong&gt; для процессоров Intel или &lt;strong&gt;svm&lt;/strong&gt; для процессоров AMD. &lt;br/&gt;

Посмотреть наличие этих флагов можно в выводе команды:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat /proc/cpuinfo&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435_\u043f\u0443\u0442\u0438_\u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;812-1752&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;что_получилось_у_меня&quot;&gt;Что получилось у меня&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Я попробывал запустить XenServer 6.2 под ESXi 5.5 и он запустился. Но с ESXi невозможно работать на ноутбуке. &lt;br/&gt;

Решение пришло в виде Ubuntu 14.04 Server + KVM.&lt;br/&gt;

Я поставил Ubuntu 14.04 Server, при установке я указал что хочу KVM host, а затем поставил desktop от KDE. Для управления виртуальными машинами установил virt-manager:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install virt-manager&lt;/pre&gt;

&lt;p&gt;
Дальше оказалось нужно проверить возможность запуска вложенных гипервизоров в KVM. Для этого выполняем:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /sys/module/kvm_intel/parameters/nested
Y&lt;/pre&gt;

&lt;p&gt;
Если в вывод &lt;strong&gt;Y&lt;/strong&gt;, значит поддержка вложенных VM уже включена.&lt;br/&gt;

Если нет - делаем как написано тут: &lt;a href=&quot;http://www.rdoxenham.com/?p=275&quot; class=&quot;urlextern&quot; title=&quot;http://www.rdoxenham.com/?p=275&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.rdoxenham.com/?p=275&lt;/a&gt;.&lt;br/&gt;

У меня на свежеустановленной Ubuntu 14.04 все уже было включено.&lt;br/&gt;

Как написано во многих мануалах - в виртуальной машине с гипервизором нужен процессор с поддержкой &lt;strong&gt;vmx&lt;/strong&gt;. Ее можно специально включить либо в &lt;strong&gt;virt-manager&lt;/strong&gt;, указав в конфигурации процессора в &lt;strong&gt;Processor&lt;/strong&gt; → &lt;strong&gt;Configuration&lt;/strong&gt; → &lt;strong&gt;CPU Features&lt;/strong&gt; → &lt;strong&gt;vmx - require&lt;/strong&gt;, либо в конфигурационном xml-файле вирутальной машины в папке &lt;strong&gt;/etc/libvirt/qemu/&lt;/strong&gt; строкой:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;feature policy=&amp;#039;require&amp;#039; name=&amp;#039;vmx&amp;#039;/&amp;gt;&lt;/pre&gt;

&lt;p&gt;
 в секции &lt;strong&gt;cpu&lt;/strong&gt;. &lt;br/&gt;

Итак - я создал виртуальную машину типа Generic, дал ей 4 Gb памяти, включил &lt;strong&gt;vmx&lt;/strong&gt;, в дополнительных свойствах указал &lt;strong&gt;Virt-type: kvm&lt;/strong&gt; и &lt;strong&gt;Architecure: x86_64&lt;/strong&gt; и запустил инсталлятор XenServer 6.2. &lt;br/&gt;

Инсталлятор запустился, я обрадовался, но быстро обломался. При установке XenServer 6.2 инсталлятор бодро сообщал мне что &lt;strong&gt;Hardware virtualization assist support is not available on this system. &lt;/strong&gt;. Это было обидно. Это означало однозначную невозможность запустить в этом гипервизоре Windows. Несколько часов гугления не давали результата. Перебор различных вариантов параметров виртуальной машины под XenServer тоже. &lt;br/&gt;

И вот я обнаружил таких же страдальцев на багтрекере ядра Linux - &lt;a href=&quot;https://bugzilla.kernel.org/show_bug.cgi?id=45931&quot; class=&quot;urlextern&quot; title=&quot;https://bugzilla.kernel.org/show_bug.cgi?id=45931&quot; rel=&quot;ugc nofollow&quot;&gt;https://bugzilla.kernel.org/show_bug.cgi?id=45931&lt;/a&gt;. Они сообщали, что проблема в единственной строке кода и патч будет включен в версию ядра 3.16, а состав Ubuntu 14.04 входит ядро 3.13. К моему счастью я обнаружил, что для Ubuntu вышел релиз-кандидат ядра версии 3.16RC2. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Обновление ядра вышло предельно простым:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-headers-3.16.0-031600rc2_3.16.0-031600rc2.201406220135_all.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-headers-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-image-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-image-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
sudo dpkg -i linux-headers-3.16*.deb linux-image-3.16*.deb&lt;/pre&gt;

&lt;p&gt;
В результате я смог установить XenServer 6.2 и запустить в нем виртуальную машину в режиме HVM и в ней установку Windows 7 x64, однако установка зависает в разных местах. Самое большее что пока удалось сделать - дойти до копирования файлов. Хотя, есть подозрение, что XenServer останавливается сам, независимо от того, работают на нем виртуальные машины или нет. Кстати - аналогичное зависание XenServer 6.2 наблюдается и под VirtualBox в среде Windows. Там удается установить какой-нибудь Linux в режиме PV, но потом XenServer виснет в произвольном месте.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Продолжение следует.  
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0443 \u043c\u0435\u043d\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c_\u0443_\u043c\u0435\u043d\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1753-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>автоматическое_подключение_к_серверам_при_запуске_re ...</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%D0%BC_%D0%BF%D1%80%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B5_remmina</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;автоматическое_подключение_к_серверам_при_запуске_remmina&quot;&gt;Автоматическое подключение к серверам при запуске remmina&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для работы с Windows серверами я пользуюсь &lt;strong&gt;Remmina&lt;/strong&gt; - отличный &lt;strong&gt;&lt;abbr title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/abbr&gt;&lt;/strong&gt; для &lt;strong&gt;freerdp&lt;/strong&gt;. &lt;br/&gt;

И единственное что мне не очень нравилось - это то что он не умеет автоматически запускать подключения к выбранным серверам при запуске. &lt;br/&gt;

К счастью, при запуске remmina из командной строки можно указать какой файл с конфигурацией подключения использовать. Файлы подключений хранятся в папке &lt;strong&gt;~/.remmina/&lt;/strong&gt; &lt;br/&gt;

Для автоматического подключения при запуске нужно отредактировать файл ярлыка - &lt;strong&gt;/usr/share/applications/remmina.desktop&lt;/strong&gt; &lt;br/&gt;

В нем ищем строку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Exec=/usr/bin/remmina&lt;/pre&gt;

&lt;p&gt;
И исправляем ее на &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Exec=/usr/bin/remmina.sh&lt;/pre&gt;

&lt;p&gt;
После этого создаем файл &lt;strong&gt;/usr/bin/remmina.sh&lt;/strong&gt; такого содержания:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh
/usr/bin/remmina -c ~/.remmina/1429802343570.remmina &amp;amp; 
/usr/bin/remmina -c ~/.remmina/1432220959159.remmina &amp;amp; 
/usr/bin/remmina -c ~/.remmina/1421141033575.remmina &amp;amp; 
/usr/bin/remmina -c ~/.remmina/1421140742617.remmina &amp;amp; 
/usr/bin/remmina -c ~/.remmina/1421141884953.remmina &amp;amp; 
/usr/bin/remmina -c ~/.remmina/1421141945745.remmina &amp;amp; &lt;/pre&gt;

&lt;p&gt;
Обнаружить какой файл подключения какому серверу соответсвует можно командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;grep -rl servername ~/.remmina &lt;/pre&gt;

&lt;p&gt;
Все. Дальше остается только сделать 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chmod a+x /usr/bin/remmina.sh&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>настройка_wiasane_sane</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_wiasane_sane</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У меня была задача - сделать &lt;strong&gt;скан-сервер&lt;/strong&gt; (по аналогии с принт-сервером) для &lt;strong&gt;Windows&lt;/strong&gt;-клиентов. То есть сервер, который бы предоставлял пользователям доступ к сканерам по сети. В результате должен получиться единый унифицированный интерфейс доступа к сканерам. &lt;br/&gt;

На клиентских машинах прописывается подключение к сканеру на скан-сервере с помощью унифицированного драйвера. А на скан-сервере уже подключение к физическому устройству с использованием драйвера, специфичного для данного устройства. Таким образом, даже физическая замена сканера на другое устройство будет приводить только к необходимости переконфигурирования устройства на скан-сервере, но не на клиентах.&lt;br/&gt;

В частности - было необходимо, чтобы пользователи фермы &lt;strong&gt;Citrix XenApp&lt;/strong&gt; могли сканировать с сетевых (Ethernet) сканеров (МФУ HP). То есть на каждом терминальном сервере должны быть установлены все сканеры, а пользователь получал бы доступ к одному из них (или нескольким) в зависимости от того, включен он в группу, соответствующую этому сканеру. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1875&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;архитектура_и_компоненты&quot;&gt;Архитектура и компоненты&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В качестве программной части скан-сервера выступает &lt;a href=&quot;http://www.sane-project.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.sane-project.org/&quot; rel=&quot;ugc nofollow&quot;&gt;SANE&lt;/a&gt;, который предоставляет унифицированный интерфейс для доступа к разнообразным сканирующим устройствам. &lt;br/&gt;

В качестве унифицированного драйвера для Windows выступил &lt;a href=&quot;https://github.com/mback2k/wiasane&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/mback2k/wiasane&quot; rel=&quot;ugc nofollow&quot;&gt;WIASANE&lt;/a&gt;. Это драйвер для Windows, позволяющий сканировать по протоколу &lt;strong&gt;SANE&lt;/strong&gt;. В системе устанавливается &lt;strong&gt;WIA (Windows Image Acquisition)&lt;/strong&gt; устройство, обращения к которому перенаправляются к устройству по протоколу &lt;strong&gt;SANE&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0438_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1876-2772&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;настройка_скан-сервере_sane&quot;&gt;Настройка скан-сервере SANE&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043a\u0430\u043d-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 SANE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0441\u043a\u0430\u043d-\u0441\u0435\u0440\u0432\u0435\u0440\u0435_sane&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2773-2835&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;установка_sane_на_ubuntu_1404&quot;&gt;Установка SANE на Ubuntu 14.04&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install sane sane-utils libsane-extras&lt;/pre&gt;

&lt;p&gt;
 Затем как предписывает документация нужно проверить тут &lt;a href=&quot;http://www.sane-project.org/sane-mfgs.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.sane-project.org/sane-mfgs.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.sane-project.org/sane-mfgs.html&lt;/a&gt;, что сканнер поддерживается и включить в файле &lt;strong&gt;/etc/sane.d/dll.conf&lt;/strong&gt; соответствующий &lt;strong&gt;backend&lt;/strong&gt; (раскомментировав нужную строку).
После этого включаем sane в режим сервера. В файлике &lt;strong&gt;/etc/default/saned&lt;/strong&gt; прописываем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Set to yes to start saned                                                     
RUN=yes  &lt;/pre&gt;

&lt;p&gt;
И прописываем сеть из которой будет доступен демон &lt;strong&gt;saned&lt;/strong&gt; в файлике: &lt;strong&gt;/etc/sane.d/saned.conf&lt;/strong&gt;.
Там можно указать как отдельный хост, так и целую сеть. Для того, чтобы дать доступ к saned с любого IP-адреса нужно добавить строку с одним символом &lt;strong&gt;+&lt;/strong&gt; (плюсик).
&lt;/p&gt;

&lt;p&gt;
Мне нужно настроить работу SANE с МФУ HP M521 и 1536.
Поэтому - ставим модуль &lt;strong&gt;libsane-hpaio&lt;/strong&gt;, который будет работать с сетевым интерфейсом &lt;strong&gt;hpaio&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install libsane-hpaio&lt;/pre&gt;

&lt;p&gt;
Если нужного модуля нет, то в дальнейшем команда &lt;strong&gt;scanimage -L&lt;/strong&gt; будет вываливаться с ошибкой &lt;strong&gt;Segmentation fault (core dumped)&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
На всякий случай проверяем наличие в файлике &lt;strong&gt;/etc/services&lt;/strong&gt; строки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sane-port 6566/tcp sane saned # SANE&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 SANE \u043d\u0430 Ubuntu 14.04&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_sane_\u043d\u0430_ubuntu_1404&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2836-4617&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;тестирование_saned&quot;&gt;Тестирование SANEd&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Во первых - можно включить тестовый бекенд &lt;strong&gt;test&lt;/strong&gt;. Для этого в файлике &lt;strong&gt;/etc/sane.d/dll.conf&lt;/strong&gt; нужно раскомментировать/добавить строку &lt;strong&gt;test&lt;/strong&gt;. В результате сервер начнет отдавать пару сканеров:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;device `net:localhost:test:0&amp;#039; is a Noname frontend-tester virtual device
device `net:localhost:test:1&amp;#039; is a Noname frontend-tester virtual device&lt;/pre&gt;

&lt;p&gt;
Если сервер sane работает как-то не так, то можно запустить его в режиме дебага, в котором он будет выдавать много полезной информации. Для начала нужно остановить его командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /etc/init.d/saned stop&lt;/pre&gt;

&lt;p&gt;
И запустить в debug-режиме:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /usr/sbin/saned -d&lt;/pre&gt;

&lt;p&gt;
Или в более подробном варианте:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /usr/sbin/saned -d128&lt;/pre&gt;

&lt;p&gt;
C какой-либо рабочей станции с Linux (на которой установлены &lt;strong&gt;sane sane-utils libsane-extras&lt;/strong&gt;) можно попробывать подключиться к saned:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage -d net:&amp;lt;ip adderss of saned&amp;gt;:test -T&lt;/pre&gt;

&lt;p&gt;
Если все хорошо, то вывод будет примерно такой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage: scanning image of size 157x196 pixels at 8 bits/pixel
scanimage: acquiring gray frame, 8 bits/sample
scanimage: reading one scanline, 157 bytes...   PASS
scanimage: reading one byte...          PASS
scanimage: stepped read, 2 bytes...     PASS
scanimage: stepped read, 4 bytes...     PASS
scanimage: stepped read, 8 bytes...     PASS
scanimage: stepped read, 16 bytes...    PASS
scanimage: stepped read, 32 bytes...    PASS
scanimage: stepped read, 64 bytes...    PASS
scanimage: stepped read, 128 bytes...   PASS
scanimage: stepped read, 256 bytes...   PASS
scanimage: stepped read, 255 bytes...   PASS
scanimage: stepped read, 127 bytes...   PASS
scanimage: stepped read, 63 bytes...    PASS
scanimage: stepped read, 31 bytes...    PASS
scanimage: stepped read, 15 bytes...    PASS
scanimage: stepped read, 7 bytes...     PASS
scanimage: stepped read, 3 bytes...     PASS&lt;/pre&gt;

&lt;p&gt;
На рабочей станции с Linux можно прописать адрес сервера &lt;strong&gt;saned&lt;/strong&gt;, чтобы команда &lt;strong&gt;scanimage&lt;/strong&gt; знала откуда брать сканеры. Для этого редактируем файлик &lt;strong&gt;/etc/sane.d/net.conf&lt;/strong&gt; и в конец дописываем IP-адрес сервера &lt;strong&gt;saned&lt;/strong&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 SANEd&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_saned&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4618-7282&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;установка_устройств_hp&quot;&gt;Установка устройств HP&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для работы с устройствами HP нужен пакет &lt;strong&gt;HPLIP&lt;/strong&gt; (HP Linux Imaging and Printing System). Его можно либо скачать с сайта HP, либо из репозиториев Ubuntu. На Ubuntu 14.04.02 я устанавливал из репозиториев. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install hplip&lt;/pre&gt;

&lt;p&gt;
Поставилась версия 3.14.3 и с ней удалось сканировать по сети через &lt;strong&gt;saned&lt;/strong&gt; с клиента Ubuntu.
&lt;/p&gt;

&lt;p&gt;
С сайта HP можно скачать гораздо более новую версию, но с ней у меня так и не получилось сканировать  по сети через &lt;strong&gt;saned&lt;/strong&gt;. Но на всякий случай:
Скачиваем HPLIP - &lt;a href=&quot;http://hplipopensource.com/hplip-web/gethplip.html&quot; class=&quot;urlextern&quot; title=&quot;http://hplipopensource.com/hplip-web/gethplip.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://hplipopensource.com/hplip-web/gethplip.html&lt;/a&gt;
Скачиваем и ставим. Ставить рекомендуют под обычным пользюком (не под root):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget http://vorboss.dl.sourceforge.net/project/hplip/hplip/3.15.7/hplip-3.15.7.run
chmod a+x hplip-3.15.7.run 
./hplip-3.15.7.run&lt;/pre&gt;

&lt;p&gt;
Запускать инсталлер можно под обычным юзером. В процессе установки он попросит пароль чтобы выполнить установку от имени root.
&lt;/p&gt;

&lt;p&gt;
Если в интернет система выходит через proxy, то нужно объявить об этом до установки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;export http_proxy=http://host.com:port/
export ftp_proxy=http://host.com:port/
export no_proxy=.domain.com
export HTTP_PROXY=http://host.com:port/
export FTP_PROXY=http://host.com:port/&lt;/pre&gt;

&lt;p&gt;
А также прописать &lt;strong&gt;http_proxy&lt;/strong&gt;, &lt;strong&gt;https_proxy&lt;/strong&gt; и &lt;strong&gt;ftp_proxy&lt;/strong&gt; в файлике &lt;strong&gt;/etc/wgetrc&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
А после установки нужно установить плагины:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;hp-plugin -i&lt;/pre&gt;

&lt;p&gt;
А затем установить принтер/сканер:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo hp-setup -i -a &amp;lt;ip address of printer&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Теперь сканер должен появляться при выполнении команды:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage -L&lt;/pre&gt;

&lt;p&gt;
Если там его нет, то генерируем &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; для этого сканера. Делать это необязательно, но во многих мануалах это действие присутствует:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;hp-makeuri &amp;lt;ip address of printer&amp;gt;&lt;/pre&gt;

&lt;p&gt;
В выдаче будет строка типа: &lt;strong&gt;hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1&lt;/strong&gt;
Для поверки состояния сканера берем строку с &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; сканера и подставляем в команду:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage --device=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1 -T&lt;/pre&gt;

&lt;p&gt;
В результате должны вывалиться результаты тестов: PASSED.
&lt;/p&gt;

&lt;p&gt;
Команда
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage -L&lt;/pre&gt;

&lt;p&gt;
Должна выдавать список сканеров. Если она этого не делает, возможно, дело в файлике &lt;strong&gt;/etc/cups/printers.conf&lt;/strong&gt;. В нем нужно заменить значение параметра  &lt;strong&gt;DeviceURI&lt;/strong&gt;. Там может быть либо что-то про &lt;strong&gt;socket&lt;/strong&gt;, а должно быть то что возвращает команда  &lt;strong&gt;hp-makeuri&lt;/strong&gt; в строчке CUPS &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;. Что-то типа &lt;strong&gt;hp:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1&lt;/strong&gt;. После правки этого файла нужно перезапустить &lt;strong&gt;cups&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /etc/init.d/cups restart&lt;/pre&gt;

&lt;p&gt;
Теперь сканировать на сервере saned из командной строки можно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage --device &amp;quot;hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1&amp;quot; --mode Color --resolution 300 &amp;gt; ~/scan.jpg&lt;/pre&gt;

&lt;p&gt;
Если списка сканеров нет совсем или там нет нужного. то можно включить дебаг:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SANE_DEBUG_NET=128 SANE_DEBUG_DLL=128 scanimage -L&lt;/pre&gt;

&lt;p&gt;
Сканировать с клиента Linux можно командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage --device &amp;quot;net:10.50.6.218:hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1&amp;quot; --mode Color --resolution 300 &amp;gt; ~/scan.jpg&lt;/pre&gt;

&lt;p&gt;
Тут укаываем, что используем бекэнд &lt;strong&gt;net&lt;/strong&gt;, затем через двоеточие адрес сервера &lt;strong&gt;saned&lt;/strong&gt; и затем &lt;strong&gt;&lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt;&lt;/strong&gt; сканера.&lt;br/&gt;

&lt;br/&gt;

Иногда бывает, что сканер поставился, но при попытках сканировать сообщает: &lt;strong&gt;Error during device I/O&lt;/strong&gt;. Вероятно нужно удалить его и поставить снова.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 HP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432_hp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7283-11947&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;удаление_принтера-сканера&quot;&gt;Удаление принтера-сканера&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Обычно на сервере сканирования устанавливается несколько принтеров одинаковой модели. Для того, чтобы узнакть какой именно принтер надо удалить - открываем файлик &lt;strong&gt;/etc/cups/printers.conf&lt;/strong&gt; и ищем по IP-адресу как именно называется устройство.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo cat /etc/cups/printers.conf
sudo hp-setup -i -r&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430-\u0441\u043a\u0430\u043d\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430-\u0441\u043a\u0430\u043d\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;11948-12494&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit8&quot; id=&quot;настройка_фронтэндов_под_windows&quot;&gt;Настройка фронтэндов под Windows&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u043e\u0432 \u043f\u043e\u0434 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u043e\u0432_\u043f\u043e\u0434_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;12495-12563&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;wiasane&quot;&gt;WiaSane&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;wiasane&lt;/strong&gt; - это обертка для &lt;strong&gt;sane&lt;/strong&gt;, которая предоставляет WIA интерфейс к сканерам &lt;strong&gt;saned&lt;/strong&gt;. &lt;br/&gt;

Настроить wiasane (0.1.1.9) с устройствами &lt;strong&gt;hpaio:/net/…&lt;/strong&gt; удалось только после патчинга драйверов &lt;strong&gt;HPLIP&lt;/strong&gt;. Со стандартным драйвером программа пытается получать список сканеров с сервера &lt;strong&gt;sane&lt;/strong&gt;, но сервер не отдает эти устройства. Помогает патчинг драйвера. Смотри ниже. &lt;br/&gt;

Рабочая сборка - &lt;a href=&quot;https://wiki.autosys.tk/_media/linux_faq/sane_wia_driver.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;linux_faq:sane_wia_driver.zip (629.3 KB)&quot;&gt;sane_wia_driver.zip&lt;/a&gt;. Она доработана для того, чтобы прописывать сканеры скриптом.
Если возникают проблемы с установкой драйвера (он просто не ставится), то скорее всего не установлен &lt;a href=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=30679&quot; class=&quot;urlextern&quot; title=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=30679&quot; rel=&quot;ugc nofollow&quot;&gt;Visual C++ Redistributable for Visual Studio&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Скрипт для пакетного прописывания сканеров такой: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;devsane.exe device uninstall wiasane.inf
devsane.exe driver uninstall wiasane.inf
devsane.exe driver install wiasane.inf
del /f /q &amp;quot;c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;

devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M1530 Gilyar 6&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.90.32.74 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M1530 Gilyar 7&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.90.32.6 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Volokolamsk&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.166.243.200 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 PavlPosad&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 ul.Dm.Ulyanova&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.204.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Schelkovo&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.234.3 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Orehovo-Zuevo&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.207.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Kolomna&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.225.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Kozhuhovo&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.226.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Chehov&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.211.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Kashira&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.237.10 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Lobnya&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.223.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Podolsk&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.214.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Shatura&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.244.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Klin&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.209.3 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Noginsk&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.215.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Egor&amp;#039;evsk&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.229.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Zheleznodorozhnyj&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.239.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 B.Tishinskiy&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.206.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Balashiha&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.233.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Mytishi&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.217.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Lubertsy&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.221.2 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;
devsane.exe device install wiasane.inf -x=1 &amp;quot;-f=M521 Zvenigorod&amp;quot; -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.218.1 -u= -s= &amp;quot;-l=c:\Program Files\SANE WIA Driver\_device install.log&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;WiaSane&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;wiasane&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;12564-18806&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;sanewinds&quot;&gt;SaneWinDS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Может сканировать. Удается вставить &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; сканера в соотвествующее поле и сканировать. Но сам фронтенд (версия 0.9.5589) пока что очень убогий и годится только для тестов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SaneWinDS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sanewinds&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;18807-19128&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;swingsane&quot;&gt;SwingSane&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Не удалось.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SwingSane&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swingsane&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;19129-19172&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;патчим_драйвер_hplip_чтобы_работали_сканеры_netsaned_iphpaionethp&quot;&gt;Патчим драйвер hplip чтобы работали сканеры net:_saned_IP_:hpaio:/net/HP_&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если при попытке прописать сканер &lt;strong&gt;wiasane&lt;/strong&gt; не обнаружвает сканер, то, скорее это связано с багом в библиотеках &lt;strong&gt;hplip&lt;/strong&gt; на сервере saned. Исправить ситуацию можно собрав &lt;strong&gt;hplip&lt;/strong&gt; из исходников и применив патч, описанный тут: &lt;a href=&quot;https://sourceforge.net/p/hplip/mailman/message/2564768/&quot; class=&quot;urlextern&quot; title=&quot;https://sourceforge.net/p/hplip/mailman/message/2564768/&quot; rel=&quot;ugc nofollow&quot;&gt;https://sourceforge.net/p/hplip/mailman/message/2564768/&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Останавливаем &lt;strong&gt;saned&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /etc/init.d/saned stop&lt;/pre&gt;

&lt;p&gt;
Удаляем старый &lt;strong&gt;hplip&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get remove hplip&lt;/pre&gt;

&lt;p&gt;
Cкачиваем исходники драйвера: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget http://downloads.sourceforge.net/project/hplip/hplip/3.15.7/hplip-3.15.7_py2.5.tar&lt;/pre&gt;

&lt;p&gt;
Рядом с распакованным архивом кладем патч &lt;a href=&quot;https://wiki.autosys.tk/_media/linux_faq/hplip_sane_patch_and_make.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;linux_faq:hplip_sane_patch_and_make.rar (1.1 KB)&quot;&gt;hplip_sane_patch_and_make.rar&lt;/a&gt; (&lt;strong&gt;hplip-sane-patch.sh&lt;/strong&gt; и &lt;strong&gt;hplip-sane-patch.diff&lt;/strong&gt;) распаковываем и применяем его:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;chmod a+x ./hplip-sane-patch.sh &amp;amp;&amp;amp; ./hplip-sane-patch.sh&lt;/pre&gt;

&lt;p&gt;
Дальше собираем по инструкции:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;http://hplipopensource.com/hplip-web/install/manual/distros/ubuntu.html&lt;/pre&gt;

&lt;p&gt;
Для &lt;strong&gt;Ubuntu 14.04&lt;/strong&gt; будет так:   
Ставим зависимости:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install --assume-yes build-essential avahi-utils libcups2 cups libcups2-dev cups-bsd cups-client libcupsimage2-dev libdbus-1-dev build-essential ghostscript openssl libjpeg-dev libsnmp-dev snmp-mibs-downloader libtool libusb-1.0.0-dev wget policykit-1 policykit-1-gnome python3-dbus python3-gi python3-dev python3-notify2 python3-pil python3-pyqt4 gtk2-engines-pixbuf python3-dbus.mainloop.qt python3-reportlab python3-lxml libsane libsane-dev sane-utils xsane&lt;/pre&gt;

&lt;p&gt;
Конфигурим:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;./configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib --prefix=/usr --enable-qt4 --disable-libusb01_build --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-udev_sysfs_rules --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build&lt;/pre&gt;

&lt;p&gt;
Компилим:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;make&lt;/pre&gt;

&lt;p&gt;
Ставим:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;make install&lt;/pre&gt;

&lt;p&gt;
Затем ставим плагин:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;hp-plugin -i&lt;/pre&gt;

&lt;p&gt;
И собственно принтер/сканер:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo hp-setup -i -a &amp;lt;ip address of printer&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Теперь можно запустить &lt;strong&gt;saned&lt;/strong&gt;, настроить на клиенте backend net и проверяем с удаленного клиента:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo /etc/init.d/saned start&lt;/pre&gt;

&lt;p&gt;
И на клиенте проверяем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scanimage -L&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0430\u0442\u0447\u0438\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 hplip \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u044b net:_saned_IP_:hpaio:\/net\/HP_&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u0442\u0447\u0438\u043c_\u0434\u0440\u0430\u0439\u0432\u0435\u0440_hplip_\u0447\u0442\u043e\u0431\u044b_\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438_\u0441\u043a\u0430\u043d\u0435\u0440\u044b_netsaned_iphpaionethp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;19173-22039&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit13&quot; id=&quot;прописываем_пользователям_сканеры_в_naps2_в_соответствии_с_группами_ad&quot;&gt;Прописываем пользователям сканеры в NAPS2 в соответствии с группами AD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для сканирования я применяю бесплатную опенсорсную утилитку &lt;strong&gt;NAPS2&lt;/strong&gt; - &lt;a href=&quot;http://sourceforge.net/projects/naps2/&quot; class=&quot;urlextern&quot; title=&quot;http://sourceforge.net/projects/naps2/&quot; rel=&quot;ugc nofollow&quot;&gt;http://sourceforge.net/projects/naps2/&lt;/a&gt; &lt;br/&gt;

Если на терминальном сервере много сканеров, то пользователю неудобно выбирать каждый раз нужный.
Можно создавать профили &lt;strong&gt;NAPS2&lt;/strong&gt; в зависимости от того, в какие группы входит пользователь.&lt;br/&gt;

Каждому сканеру сопоставлена групппа. Если пользовтаель входит в группу - ему пропишется нужный сканер. Названия групп и сканеров разные, потому что группы изначально использовались для прописывания принтеров. Но можно сделать их одинаковыми и тогда скриптец немного упростится. &lt;br/&gt;

Вот этот скриптец VBS для прописывания сканеров в &lt;strong&gt;NAPS2&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Dim dicScanGroups, arrGroups
Set dicScanGroups = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)
&amp;#039;Заполняем словарь групп-сканеров. 
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Key - имя группы, Value - имя сканера
dicScanGroups.Add &amp;quot;Prn_1536_Gilyar6&amp;quot;,&amp;quot;M1530 Gilyar 6&amp;quot;
dicScanGroups.Add &amp;quot;Prn_1536_Gilyar7&amp;quot;,&amp;quot;M1530 Gilyar 7&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Chehov_M521&amp;quot;,&amp;quot;M521 Chehov&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Egorevsk_M521&amp;quot;,&amp;quot;M521 Egor&amp;#039;evsk&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Kolomna_M521&amp;quot;,&amp;quot;M521 Kolomna&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Podolsk_M521&amp;quot;,&amp;quot;M521 Podolsk&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Scholkovo_HP_MFP&amp;quot;,&amp;quot;M521 Schelkovo&amp;quot;
dicScanGroups.Add &amp;quot;Printer_B_Tishinskiy_M521&amp;quot;,&amp;quot;M521 B.Tishinskiy&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Balashiha_M521&amp;quot;,&amp;quot;M521 Balashiha&amp;quot;
dicScanGroups.Add &amp;quot;Printer_ul.Dm.Ulyanova_HP521&amp;quot;,&amp;quot;M521 ul.Dm.Ulyanova&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Lobnya_M521&amp;quot;,&amp;quot;M521 Lobnya&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Lubertsy_M521&amp;quot;,&amp;quot;M521 Lubertsy&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Mytishi_M521&amp;quot;,&amp;quot;M521 Mytishi&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Pavlovskiy_Posad_M521&amp;quot;,&amp;quot;M521 PavlPosad&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Volokolamsk_M521&amp;quot;,&amp;quot;M521 Volokolamsk&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Zvenigorod_M521&amp;quot;,&amp;quot;M521 Zvenigorod&amp;quot;
dicScanGroups.Add &amp;quot;Prn_HP521_Zheleznodorozhnyj&amp;quot;,&amp;quot;M521 Zheleznodorozhnyj&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Kashira_M521&amp;quot;,&amp;quot;M521 Kashira&amp;quot;
dicScanGroups.Add &amp;quot;Prn_Klin_M521&amp;quot;,&amp;quot;M521 Klin&amp;quot;
dicScanGroups.Add &amp;quot;Prn_M521_Noginsk_def&amp;quot;,&amp;quot;M521 Noginsk&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Orehovo-Zuevo_M521&amp;quot;,&amp;quot;M521 Orehovo-Zuevo&amp;quot;
dicScanGroups.Add &amp;quot;Printer_Shatura_M521&amp;quot;,&amp;quot;M521 Shatura&amp;quot;

arrGroups = dicScanGroups.Keys

Dim intCount, strGroup, ScannerName, ScanerDevName, ScannerID
Dim objDeviceManager, i, objFSO, ProfileFile, DesktopPath

Set objUser = CreateObject(&amp;quot;ADSystemInfo&amp;quot;)
Set CurrentUser = GetObject(&amp;quot;LDAP://&amp;quot; &amp;amp; objUser.UserName)
strGroup = LCase(Join(CurrentUser.MemberOf))

Set objFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)

Set Shell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)
Set DeviceManager = Wscript.createObject(&amp;quot;WIA.DeviceManager&amp;quot;)

&amp;#039;создаем папку и файл %APPDATA%\NAPS2\profiles.xml
Call Shell.Run(&amp;quot;%COMSPEC% /c mkdir &amp;quot;&amp;quot;%APPDATA%\NAPS2&amp;quot;&amp;quot;&amp;quot;,0,true)
&amp;#039;&amp;#039;objFSO.CreateFolder(Shell.expandEnvironmentStrings(&amp;quot;%APPDATA%&amp;quot;) &amp;amp; &amp;quot;\NAPS2&amp;quot;)
Set ProfileFile = objFSO.CreateTextFile(Shell.expandEnvironmentStrings(&amp;quot;%APPDATA%&amp;quot;) &amp;amp; &amp;quot;\NAPS2\profiles.xml&amp;quot;, True)
ProfileFile.WriteLine &amp;quot;&amp;lt;?xml version=&amp;quot; &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot; &amp;amp; &amp;quot;1.0&amp;quot; &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot; &amp;amp; &amp;quot;?&amp;gt;&amp;quot;
ProfileFile.WriteLine &amp;quot;&amp;lt;ArrayOfExtendedScanSettings xmlns:xsi=&amp;quot;&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;amp;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot; &amp;amp; &amp;quot; xmlns:xsd=&amp;quot;&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;amp;&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;amp;&amp;quot;&amp;gt;&amp;quot;

&amp;#039;Перебираем группы из словарика и и если группа есть у пользюка то
For intCount = 0 to dicSCanGroups.count - 1
ScannerName = dicScanGroups.Item(arrGroups(intCOunt))
If InStr(strGroup, lcase(arrGroups(intCount))) Then
&amp;#039;Создаем ярлык на утилитку сканирования
DesktopPath = Shell.SpecialFolders(&amp;quot;Desktop&amp;quot;)
Set oShortCut = Shell.CreateShortcut(DesktopPath &amp;amp; &amp;quot;\ScanTool.lnk&amp;quot;)
oShortCut.TargetPath = &amp;quot;C:\ScanTool\NAPS2.exe&amp;quot;
oShortCut.Save
&amp;#039;перебираем сканеры чтобы найти DevID
	For i = 1 to DeviceManager.DeviceInfos.Count
	ScanerDevName = DeviceManager.DeviceInfos(i).Properties(&amp;quot;Name&amp;quot;).Value
	ScannerID = DeviceManager.DeviceInfos(i).DeviceID
	If StrComp(ScanerDevName, ScannerName, vbTextCompare) = 0 Then
			&amp;#039;прописываем сканер в файлик
			ProfileFile.WriteLine &amp;quot;  &amp;lt;ExtendedScanSettings&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;Device&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;      &amp;lt;ID&amp;gt;&amp;quot; &amp;amp; ScannerID &amp;amp; &amp;quot;&amp;lt;/ID&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;      &amp;lt;Name&amp;gt;&amp;quot; &amp;amp; ScanerDevName &amp;amp; &amp;quot;&amp;lt;/Name&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;/Device&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;DriverName&amp;gt;wia&amp;lt;/DriverName&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;DisplayName&amp;gt;&amp;quot; &amp;amp; ScanerDevName &amp;amp; &amp;quot;&amp;lt;/DisplayName&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;IconID&amp;gt;0&amp;lt;/IconID&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;MaxQuality&amp;gt;false&amp;lt;/MaxQuality&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;IsDefault&amp;gt;true&amp;lt;/IsDefault&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;Version&amp;gt;1&amp;lt;/Version&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;UseNativeUI&amp;gt;false&amp;lt;/UseNativeUI&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;AfterScanScale&amp;gt;OneToOne&amp;lt;/AfterScanScale&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;Brightness&amp;gt;0&amp;lt;/Brightness&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;Contrast&amp;gt;0&amp;lt;/Contrast&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;BitDepth&amp;gt;C24Bit&amp;lt;/BitDepth&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;PageAlign&amp;gt;Left&amp;lt;/PageAlign&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;PageSize&amp;gt;Letter&amp;lt;/PageSize&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;Resolution&amp;gt;Dpi200&amp;lt;/Resolution&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;    &amp;lt;PaperSource&amp;gt;Glass&amp;lt;/PaperSource&amp;gt;&amp;quot;
			ProfileFile.WriteLine &amp;quot;  &amp;lt;/ExtendedScanSettings&amp;gt;&amp;quot;
		End If
	Next
End If
Next
ProfileFile.WriteLine &amp;quot;&amp;lt;/ArrayOfExtendedScanSettings&amp;gt;&amp;quot;
ProfileFile.Close&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u043a\u0430\u043d\u0435\u0440\u044b \u0432 NAPS2 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 AD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c_\u0441\u043a\u0430\u043d\u0435\u0440\u044b_\u0432_naps2_\u0432_\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438_\u0441_\u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438_ad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;22040-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 14 May 2019 07:52:07 +0000</pubDate>
        </item>
        <item>
            <title>настройка_звука_в_ubuntu_14_04_kde</title>
            <link>https://wiki.autosys.tk/linux_faq/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B7%D0%B2%D1%83%D0%BA%D0%B0_%D0%B2_ubuntu_14_04_kde</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;alsa&quot;&gt;ALSA&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
ALSA включена в стандартную сборку ядра &lt;br/&gt;

Конфигурационные файлы &lt;strong&gt;alsa&lt;/strong&gt; находятся в папке &lt;strong&gt;/usr/share/alsa/&lt;/strong&gt;
Они входят в пакет &lt;strong&gt;libasound2-data&lt;/strong&gt;. Поэтому если вдруг в результает настоек что-то повредится и будут ошибки типа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ALSA lib conf.c:3707:(snd_config_update_r) Cannot access file /usr/share/alsa/alsa.conf
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:0
aplay: device_list:277: control open (0): No such file or directory&lt;/pre&gt;

&lt;p&gt;
То нужно просто переустановить подсистему ALSA:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;rm -r ~/.pulse ~/.asound* 
sudo rm /etc/asound.conf
sudo apt-get update
sudo apt-get upgrade
sudo apt-get purge linux-sound-base alsa-base alsa-utils
sudo apt-get install linux-sound-base alsa-base alsa-utils gdm ubuntu-desktop
sudo apt-get install --reinstall libasound2-data&lt;/pre&gt;

&lt;p&gt;
Устройства для вывода звука могут быть заданы для пользователя
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nano ~/.asoundrc&lt;/pre&gt;

&lt;p&gt;
или для системы вцелом
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo nano /etc/asound.conf&lt;/pre&gt;

&lt;p&gt;
В самом простом случае, если в системе одна звуковая карта, то &lt;strong&gt;/etc/asound.conf&lt;/strong&gt; будет выглядеть так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw           
    card 0
}&lt;/pre&gt;

&lt;p&gt;
Получить список звуковых карт можно командой: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;aplay -l&lt;/pre&gt;

&lt;p&gt;
Если не удается получить список звуковых карт и выводится только строка &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt; List of PLAYBACK Hardware Devices &lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;, возможно, у пользователя просто нет прав на это.Для того, чтобы права были нужно включить пользователя в группу &lt;strong&gt;audio&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo gpasswd -a $USER audio&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
    </channel>
</rss>
