{"id":27240,"date":"2023-03-30T00:06:04","date_gmt":"2023-12-26T22:12:30","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/"},"modified":"2025-08-12T01:34:54","modified_gmt":"2025-08-11T17:34:54","slug":"%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/","title":{"rendered":"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf"},"content":{"rendered":"<p>\u6211\u8fdb\u884c\u4e86Debian 9.4\u7684\u6e05\u6d01\u5b89\u88c5\u3002<br \/>\n\u8fd9\u662f\u6211\u7684\u5907\u5fd8\u5f55\u3002<\/p>\n<p>\u5728Debian 10\u4e0a\u4e5f\u662f\u4e00\u6837\u7684\u3002(\u597d\u50cf\u7ecf\u5e38\u8fdb\u884c\u5b89\u88c5)<\/p>\n<h1>\u5b89\u88c5\u4e2d\u5728\u65c5\u9014\u4e2d\uff0c\u9009\u62e9\u4e86Gnome\u3002\u5728\u8fd9\u91cc\uff0c\u5c06\u5176\u79fb\u9664\uff0c\u53ea\u7559\u4e0b\u6700\u540e\u663e\u793a\u7684\u4e24\u4e2a\u9009\u62e9\uff1aSSH\u670d\u52a1\u5668\u548c\u5176\u4ed6\u5de5\u5177\u3002\u79fb\u9664Gnome\u7684\u9009\u62e9\u4f1a\u52a0\u5feb\u5b89\u88c5\u901f\u5ea6\uff0c\u4f46\u540c\u65f6\u4e5f\u4f1a\u7f3a\u5c11\u91cd\u8981\u7684\u5de5\u5177\u5b89\u88c5\u3002\u56e0\u6b64\uff0c\u5728\u5b89\u88c5\u540e\u9700\u8981\u8fdb\u884c\u57fa\u672c\u8bbe\u7f6e\u3002<\/p>\n<h1>\u5b89\u88c5\u540e (An<\/p>\n<h2>\u57fa\u672c\u8bbe\u7f6e<\/p>\n<h3>\u5b89\u88c5\u5fc5\u8981\u7684\u5de5\u5177<\/p>\n<pre class=\"post-pre\"><code># apt-get install -y net-tools\r\n# apt-get install -y sudo\r\n# apt-get install -y samba\r\n# apt-get install -y xorg lxde-core xrdp tigervnc-standalone-server\r\n# apt-get install -y x11vnc\r\n# apt-get install -y rsync\r\n# apt-get install -y qemu-kvm libvirt-clients qemu-utils libvirt-daemon-system virt-manager\r\n# apt-get install -y mdadm\r\n# apt-get install -y firmware-realtek\r\n# apt-get install -y nfs-kernel-server\r\n# apt-get install -y acpidump\r\n# apt-get install -y task-japanese locales-all\r\n# apt-get install -y ibus-mozc\r\n# apt-get install -y nginx\r\n# apt-get install -y build-essential\r\n# apt-get install -y openvpn\r\n# apt-get install -y sdparm\r\n# apt-get install -y bridge-utils\r\n# apt-get install -y lxc\r\n# apt-get install -y freerdp\r\n<\/code><\/pre>\n<h4>\u4fee\u6539Sudoers\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code>#vi \/etc\/sudoers\r\n\r\n# User privilege specification\r\nroot    ALL=(ALL:ALL) ALL\r\nmyid    ALL=NOPASSWD: ALL  &lt;&lt;==\u8ffd\u8a18\r\n<\/code><\/pre>\n<p>\u8bf7\u6dfb\u52a0 myid ALL=NOPASSWD: ALL\u3002\u8fd9\u6837\uff0c\u5728\u4f7f\u7528sudo\u65f6\u5c31\u53ef\u4ee5\u65e0\u9700\u5bc6\u7801\u6267\u884c\u4e86\u3002\u5c3d\u7ba1\u8fd9\u662f\u4e2a\u4eba\u504f\u597d\uff0c\u4f46\u559c\u6b22\u4e0d\u9700\u8981\u5bc6\u7801\u7684\u670b\u53cb\u53ef\u4ee5\u4f7f\u7528\u3002<\/p>\n<h4>\u6851\u5df4\u7684\u4fee\u6539\u6211\u8981\u8fdb\u884c\u7528\u6237\u6ce8\u518c<\/p>\n<pre class=\"post-pre\"><code>$ sudo pdbedit -u myid -a\r\n$ sudo systemctl restart smbd nmbd\r\n<\/code><\/pre>\n<h4>xrdp\u7684\u8bbe\u7f6e\u7279\u522b\u662f\uff0c\u6ca1\u6709\u4ec0\u4e48\u56f0\u96be\u5730\uff0c\u7b80\u5355\u5730\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install -y xrdp tigervnc-standalone-server\r\n$ sudo systemctl start xrdp \r\n$ sudo systemctl enable xrdp\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u60a8\u53ef\u4ee5\u5c06\u60a8\u559c\u6b22\u7684\u4f1a\u8bdd\u8bbe\u7f6e\u5199\u5165\u5230\/etc\/xrdp\/xrdp.ini\u6587\u4ef6\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">;\r\n; Session types\r\n;\r\n<\/span>\r\n<span class=\"nn\">[myhost]<\/span>\r\n<span class=\"py\">name<\/span><span class=\"p\">=<\/span><span class=\"s\">myhost<\/span>\r\n<span class=\"py\">lib<\/span><span class=\"p\">=<\/span><span class=\"s\">libvnc.so<\/span>\r\n<span class=\"py\">username<\/span><span class=\"p\">=<\/span><span class=\"s\">ask<\/span>\r\n<span class=\"py\">password<\/span><span class=\"p\">=<\/span><span class=\"s\">ask<\/span>\r\n<span class=\"py\">ip<\/span><span class=\"p\">=<\/span><span class=\"s\">127.0.0.1<\/span>\r\n<span class=\"py\">port<\/span><span class=\"p\">=<\/span><span class=\"s\">-1<\/span>\r\n<span class=\"c\">#xserverbpp=24\r\n#delay_ms=2000\r\n<\/span><\/code><\/pre>\n<p>\u4e3a\u4e86\u80fd\u591f\u4ece\u4e0d\u540c\u7684\u8bbe\u5907\u4e0a\u8fdb\u5165\u76f8\u540c\u7684\u4f1a\u8bdd\uff0c\u9700\u8981\u4f7f\u7528\u4ee5\u4e0b\u7684&#8221;param8&#8243;\u548c&#8221;param9&#8243;\u5492\u8bed\u3002\u5982\u679c\u4e0d\u4f7f\u7528\u8fd9\u4e9b\u5492\u8bed\uff0c\u5ba2\u6237\u7aefB\u5c06\u65e0\u6cd5\u52a0\u5165\u5ba2\u6237\u7aefA\u542f\u52a8\u76845910\u4f1a\u8bdd\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nn\">[Xvnc]<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">Xvnc<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">-bs<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">-nolisten<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">tcp<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">-localhost<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">-dpi<\/span>\r\n<span class=\"py\">param<\/span><span class=\"p\">=<\/span><span class=\"s\">96<\/span>\r\n<span class=\"py\">param8<\/span><span class=\"p\">=<\/span><span class=\"s\">-SecurityTypes<\/span>\r\n<span class=\"py\">param9<\/span><span class=\"p\">=<\/span><span class=\"s\">None<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u8fdc\u7a0b\u684c\u9762\u8fdb\u884c\u8fde\u63a5<\/p>\n<p>\u542f\u52a8.xsession\u6587\u4ef6\u3002\u5982\u679c\u6ca1\u6709\u5b83\uff0c\u8fde\u63a5\u5230xrdp\u540e\u4f1a\u51fa\u73b0\u9519\u8bef\u3002\u5c31\u7b97\u5728\u63a7\u5236\u53f0\u4e0a\u4e5f\u65e0\u6cd5\u8fd0\u884cstartx\uff0c\u8fd9\u8bf4\u660e\u7f3a\u5c11\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>$ echo \"lxsession -e LXDE\" &gt; ~\/.xsession\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5c06\u63a7\u5236\u53f0\u767b\u5f55\u754c\u9762\u8bbe\u4e3aCUI\uff08\u5b57\u7b26\u7528\u6237\u754c\u9762\uff09\uff0c\u9700\u8981\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo systemctl stop lightdm.service\r\n$ sudo systemctl disable lightdm.service\r\n<\/code><\/pre>\n<h4>xrdp\u914d\u7f6e &#8211; Ubuntu 22.04 2022\u6625\u5b63\u4ece22.04\u7684\u9884\u53d1\u5e03\u7248\u52302022\u5e746\u6708\uff0c\u4f7f\u7528apt install xrdp\u5b89\u88c5\u7684xrdp\u5b58\u5728\u65e0\u6cd5\u8fd0\u884c\u7684\u95ee\u9898\u3002\uff08\u901a\u8fc7\u4e0a\u8ff0\u6b65\u9aa4\u8fdb\u884c\u5b89\u88c5\u662f\u4e0d\u53ef\u884c\u7684\uff0c\u5176\u4ed6\u60c5\u51b5\u5c1a\u4e0d\u6e05\u695a\uff0c\u4f8b\u5982\uff0c\u4f7f\u7528lxde\u4ee5\u5916\u7684\u684c\u9762\u73af\u5883\u7b49\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>[INFO ] error loading libvnc.so specified in xrdp.ini, please add a \r\n[INFO ] valid entry like lib=libxrdp-vnc.so or similar\r\n<\/code><\/pre>\n<p>\u51fa\u73b0\u4e86\u65e0\u6cd5\u8bfb\u53d6libvnc.so\u7684\u9519\u8bef\uff0c\u5c31\u50cf\u8fd9\u6837\u3002<\/p>\n<p>\u7531\u65bc\u6c92\u6709\u8fa6\u6cd5\uff0c\u6211\u6703\u9032\u884c\u81ea\u7d44\u96fb\u8166\u3002\u6b65\u9a5f\u5c07\u5b8c\u5168\u4f9d\u7167\u539f\u88dd\u7684\u65b9\u5f0f\u9032\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>wget https:\/\/github.com\/neutrinolabs\/xrdp\/releases\/download\/v0.9.19\/xrdp-0.9.19.tar.gz\r\ntar xvf xrdp-0.9.19.tar.gz\r\ncd xrdp-0.9.19\r\n.\/\r\n<\/code><\/pre>\n<h4>vncserver\u7684\u914d\u7f6e\u8bbe\u7f6e\u56e0\u4e3a\u5207\u6362\u5230\u4e86xrdp\uff0c\u6240\u4ee5\u6709\u4e00\u4e9b\u5730\u65b9\u4e0exrdp\u7684\u5185\u5bb9\u4e0d\u592a\u7b26\u5408\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install -y xorg lxde-core tightvncserver\r\n<\/code><\/pre>\n<p>\u5728\u4e4b\u540e\uff0c\u5c06\u4ee5\u4e0b\u8fd9\u53e5\u8bdd\u6dfb\u52a0\u5230.vnc\/xstartup\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>\/usr\/bin\/startlxde &amp;\r\n<\/code><\/pre>\n<p>\u7981\u6b62LXDE\u5728\u542f\u52a8\u65f6\u52a0\u8f7d\u7684\u5492\u8bed<\/p>\n<pre class=\"post-pre\"><code>$ sudo systemctl set-default multi-user.target\r\n<\/code><\/pre>\n<p>\u5728\u542f\u52a8\u65f6\u81ea\u52a8\u542f\u52a8vncserver\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh -e\r\n\r\n### BEGIN INIT INFO\r\n# Provides:          vncserver\r\n# Required-Start:    networking\r\n# Default-Start:     3 4 5\r\n# Default-Stop:      0 6\r\n### END INIT INFO\r\n\r\n. \/lib\/lsb\/init-functions\r\n\r\ncase \"$1\" in\r\nstart)\r\nlog_action_begin_msg \"Starting vncserver\"\r\nsu myid -c \"\/usr\/bin\/vncserver\"\r\n;;\r\n\r\nstop)\r\nlog_action_begin_msg \"Stoping vncserver\"\r\nsu myid -c \"\/usr\/bin\/vncserver -kill :1\"\r\n;;\r\n\r\nrestart)\r\n$0 stop\r\n$0 start\r\n;;\r\nesac\r\n\r\nexit 0\r\n<\/code><\/pre>\n<p>\u5c06\u6b64\u5185\u5bb9\u6ce8\u518c\u5230\u670d\u52a1\u4e2d<\/p>\n<pre class=\"post-pre\"><code>$ sudo update-rc.d vncserver default\r\n<\/code><\/pre>\n<h4>\u7528VNC\u5728\u4e3b\u673a\u4e0a\u64ad\u653e\u5c4f\u5e55\u7684\u753b\u9762\u3002<br \/>\n\u8981\u8bbe\u7f6e\u5f53\u60f3\u8981\u64cd\u4f5c\u8fdc\u5904\u4e3b\u673a\u5c4f\u5e55\u65f6\u7684\u9009\u9879\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo systemctl start lightdm\r\n$ sudo apt-get isntall x11vnc\r\n$ sudo x11vnc -display :0 -auth \/var\/run\/lightdm\/root\/:0\r\n<\/code><\/pre>\n<p>\u8fd9\u662flightdm\u7684\u4e00\u4e2a\u793a\u4f8b\uff0c\u901a\u8fc7\u4e0b\u9762\u7684\u547d\u4ee4\uff0c\u4f60\u5c31\u80fd\u77e5\u9053\u5e94\u8be5\u5728\u54ea\u91cc\u67e5\u770b\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ps wwwwaux | grep auth\r\n(snip) \/usr\/lib\/xorg\/Xorg :0 -seat seat0 -auth \/var\/run\/lightdm\/root\/:0 -nolisten tcp vt7 -novtswitch\r\n<\/code><\/pre>\n<h4>KVM\/QEMU\/Libvirt\u7684\u8bbe\u7f6e\u914d\u7f6e<\/p>\n<pre class=\"post-pre\"><code># apt-get install -y qemu-kvm libvirt-clients qemu-utils libvirt-daemon-system virt-manager ovmf\r\n# adduser &lt;youruser&gt; libvirt\r\n# adduser &lt;youruser&gt; libvirt-qemu\r\n<\/code><\/pre>\n<p>\u5982\u679c\u9700\u8981UEFI\u542f\u52a8\uff0c\u90a3\u5c31\u9700\u8981ovmf\u3002<br \/>\n\u5982\u679c\u9700\u8981\u56fe\u5f62\u7528\u6237\u754c\u9762\u7684virt-manager\uff0c\u90a3\u5c31\u9700\u8981virt-manager\u3002<\/p>\n<p>\u521b\u5efa\u4e00\u4e2a\u540d\u4e3abr0\u7684\u6865\u63a5(br0)\u3002<\/p>\n<pre class=\"post-pre\"><code>auto br0\r\niface br0 inet static\r\n      address 192.168.x.y\r\n      netmask 255.255.255.0\r\n      network 192.168.x.0\r\n      broadcast 192.168.x.255\r\n      gateway 192.168.x.1\r\n      dns-nameservers 192.168.x.1 8.8.8.8 \r\n      bridge_ports eth0\r\n      bridge_stp off\r\n      bridge_maxwait 0\r\nauto eth0\r\niface eth0 inet manual\r\n<\/code><\/pre>\n<h4>mdadm\u7684\u914d\u7f6e\u4f7f\u7528mdadm\u5de5\u5177\uff0c\u6267\u884c\u6570\u636e\u78c1\u76d8\u7684RAID 1\u3002<\/p>\n<pre class=\"post-pre\"><code># mdadm --create \/dev\/md20 --level=raid1 --raid-devices=2 \/dev\/sdc1 \/dev\/sdc2\r\n# mdadm --assemble \/dev\/md20 \/dev\/sdc1 \/dev\/sdc2\r\n<\/code><\/pre>\n<p>\u8bf7\u6ce8\u610f\uff1a<br \/>\n\u5f53\u60a8\u9700\u8981\u521b\u5efa\u65b0\u7684RAID\u65f6\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1acreate<br \/>\n\u5f53\u60a8\u9700\u8981\u91cd\u65b0\u7ec4\u88c5\u73b0\u6709\u7684RAID\u65f6\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1aassemble<br \/>\n\u5728\u8fdb\u884c\u91cd\u65b0\u7ec4\u88c5\u65f6\uff0cRAID\u7684\u6761\u4ef6\u5c06\u4ece\u8bbe\u5907\u4e2d\u8bfb\u53d6\u5e76\u8bbe\u7f6e\u3002<\/p>\n<p>\u5c06\u4fe1\u606f\u8ffd\u52a0\u5230 \/etc\/mdadm\/mdadm.conf \u6587\u4ef6\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code># mdadm --detail --scan &gt;&gt; \/etc\/mdadm\/mdadm.conf\r\n<\/code><\/pre>\n<p>\u5c06\u5176\u6dfb\u52a0\u5230fstab\u6587\u4ef6\u4e2d<\/p>\n<pre class=\"post-pre\"><code>$ sudo dumpe2fs \/dev\/md20 | grep UUID\r\n$ sudo ls \/dev\/disk\/by-uuid\/ &lt;--\u78ba\u8a8d\u7528\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u6b64\u5904\u663e\u793a\u7684UUID\u5c06\u5176\u6ce8\u518c\u5230fstab\u4e2d\u3002<\/p>\n<p>\u5982\u679c\u9700\u8981\u683c\u5f0f\uff0c\u8bf7\u63d0\u4f9b\u683c\u5f0f<\/p>\n<pre class=\"post-pre\"><code># fdisk \/dev\/sdx\r\n# mkfs.ext4 \/dev\/sdx1\r\n<\/code><\/pre>\n<h4>Realtek\u7684\u8bbe\u7f6e\u56fa\u4ef6\u4ece\u4e00\u5f00\u59cb\uff0c\u5f53\u4f60\u5b89\u88c5mdadm\u65f6\uff0c\u4f60\u4f1a\u6536\u5230\u4ee5\u4e0b\u4fe1\u606f<\/p>\n<pre class=\"post-pre\"><code>W: Possible missing firmware \/lib\/firmware\/rtl_nic\/rtl8107e-2.fw for module r8169\r\nW: Possible missing firmware \/lib\/firmware\/rtl_nic\/rtl8107e-1.fw for module r8169\r\n...\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u611f\u89c9\u4e0d\u8212\u670d\uff0c\u6211\u8981\u628a\u5b83\u5220\u9664\u3002<br \/>\nURL\u94fe\u63a5\u7684\u4fe1\u606f\u5c31\u662f\u5982\u6b64\u3002\u603b\u4e4b\uff0c\u56e0\u4e3a\u88ab\u63d0\u5230\u7684\u82af\u7247\u7ec4\u662frealtek\u7684\uff0c\u6240\u4ee5\u53ea\u9700\u5b89\u88c5ffirmware-realtek\u5373\u53ef\u3002<\/p>\n<pre class=\"post-pre\"><code>#sed -i.bak 's\/stretch[^ ]* main$\/&amp; contrib non-free\/g' \/etc\/apt\/sources.list\r\n#apt-get update\r\n#apt-get install -y firmware-realtek\r\n#update-initramfs -u\r\n<\/code><\/pre>\n<p>\u7531\u4e8eDebian 9.4\u7248\u672c\u662fstretch\uff0c\u56e0\u6b64\u6211\u4eec\u9488\u5bf9\u8fd9\u4e2a\u7248\u672c\u8fdb\u884c\u64cd\u4f5c\u3002<br \/>\n\u800c\u5728Debian 10\u4e2d\uff0c\u5219\u53d8\u6210\u4e86buster\u3002\u8bf7\u7528sed\u547d\u4ee4\u5c06\u539f\u672c\u6307\u5b9a\u7684stretch\u66ff\u6362\u4e00\u4e0b\u3002<br \/>\n\u6216\u8005\uff0c\u76f4\u63a5\u4fee\u6539source.list\u4e5f\u53ef\u4ee5\u3002\u53ea\u9700\u5728main\u540e\u9762\u9010\u6b65\u6dfb\u52a0contrib non-free\u5373\u53ef\u3002<\/p>\n<h4>NFS Kernel Server \u7684\u914d\u7f6e<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install -y nfs-kernel-server\r\n<\/code><\/pre>\n<p>\u7136\u540e\uff0c\u5728\/etc\u76ee\u5f55\u4e0b\u521b\u5efaexports\u6587\u4ef6\uff0c\u7136\u540e\u5bf9\u5176\u8fdb\u884c\u7f16\u8f91\u3002<\/p>\n<pre class=\"post-pre\"><code>\/home           192.168.1.0\/255.255.255.0(rw,sync,no_wdelay,no_root_squash)\r\n\/mydir          192.168.1.0\/255.255.255.0(rw,sync,no_wdelay,no_root_squash)\r\n<\/code><\/pre>\n<h4>nginx\u914d\u7f6e\u5efa\u7acb\u4e00\u4e2a\u8bbe\u5b9a\u6587\u4ef6\uff0c\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>\/etc\/nginx\/nginx.conf\r\n\/etc\/nginx\/sites-enabled\/default\r\n<\/code><\/pre>\n<p>\u5982\u679c\u4fee\u6539\u9ed8\u8ba4\u7684\u6839\u8282\u70b9\u4fe1\u606f\uff0c\u53ef\u4ee5\u5c06\u6839\u4f4d\u7f6e\u66f4\u6539\u5230\u4efb\u610f\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u4f4d\u7f6e\u4e3a\/var\/www\/html\u3002\u5728\u90a3\u91cc\u4f1a\u6709index.nginx-debian.html\u3002<\/p>\n<p>\u53ea\u6709\u5b89\u88c5\u4e86\u989d\u5916\u7684\u5de5\u5177\uff0cPHP\u624d\u80fd\u6b63\u5e38\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install php7.0-fpm\r\n$ sudo systemctl start php7.0-fpm\r\n<\/code><\/pre>\n<p>\uff08\u4ecd\u7136\u9700\u8981\u586b\u5199\uff09<\/p>\n<h4>OpenVPN\u670d\u52a1\u5668\u7684\u914d\u7f6e\u5728\u542f\u52a8\u591a\u4e2a\u670d\u52a1\u5668\u65f6\uff0c\u9700\u8981\u5728systemctrl\u4e2d\u8fdb\u884c\u6307\u5b9a\u7684\u8bbe\u8ba1\u3002<\/p>\n<pre class=\"post-pre\"><code># systemctl start openvpn@(thefirst)\r\n# systemctl start openvpn@(thesecond)\r\n<\/code><\/pre>\n<p>\u7b2c\u4e00\u4e2a.conf\u548c\u7b2c\u4e8c\u4e2a.conf\u5fc5\u987b\u5b58\u5728\u4e8e\/etc\/openvpn\/\u6587\u4ef6\u5939\u4e0b<br \/>\n\u8fd9\u6837\uff0c\u5c31\u53ef\u4ee5\u5728\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u63d0\u4f9b\u591a\u4e2aOpenVPN\u670d\u52a1<\/p>\n<p>\u5728TUN\u65f6\uff0c\u8bf7\u786e\u4fdd\u4e0d\u8981\u5fd8\u8bb0\u4ee5\u4e0b\u8bbe\u7f6e\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\/etc\/sysctl.conf: net.ipv4.ip_forward=1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">if-up.sh\u3068if-down.sh\u3092\u66f4\u65b0\u3057\u3066\u3001\u63a5\u7d9a\u6642\u306biptables\u3067\u30b5\u30d6\u30cd\u30c3\u30c8\u3092\u3064\u306a\u3050<\/ul>\n<h4>\u5916\u63a5\u786c\u76d8\u7684\u7701\u7535\u8bbe\u7f6e\uff08sdparm\uff09<\/p>\n<pre class=\"post-pre\"><code># sdparam -S 5 \/dev\/sdx\r\n<\/code><\/pre>\n<p>\u5982\u679c\u8bf4\uff0c\u4f3c\u4e4e\u53ef\u4ee5\u505c\u6b62HDD\u7684\u65cb\u8f6c\uff0c\u4f46\u5728\u6211\u4eec\u7684\u73af\u5883\u4e0b\u5374\u6ca1\u6709\u8d77\u4f5c\u7528\u3002<\/p>\n<h4>\u6865\u6881\u7684\u8bbe\u7f6e\u8bf7\u5728\u4e0b\u65b9\u6dfb\u52a0\u66f4\u591a\u4fe1\u606f<\/p>\n<pre class=\"post-pre\"><code>auto br0\r\niface br0 inet static\r\n        address 192.168.0.2\/24\r\n        gateway 192.168.0.1\r\n        # dns-* options are implemented by the resolvconf package, if installed\r\n        dns-nameservers 192.168.1.1\r\n        # br\r\n        bridge_ports eth0\r\n        bridge_stp off\r\n        bridge_maxwait 0\r\n<\/code><\/pre>\n<p>\u5982\u679ceth0\u63a5\u53e3\u5206\u914d\u4e86DHCP\u5730\u5740\uff0c\u4e5f\u53ef\u4ee5\u89e3\u9664\u3002<\/p>\n<pre class=\"post-pre\"><code># ip addr del &lt;dhcp ip&gt; dev eth0\r\n<\/code><\/pre>\n<h4>\u5bb9\u5668\u5f88\u9057\u61be\uff0cDebian (10.4 \u7248\u672c\u4e5f\u662f\u5982\u6b64)\uff0c\u65e0\u6cd5\u901a\u8fc7 apt-get \u5b89\u88c5 lxd\uff0c\u6240\u4ee5\u6211\u4eec\u4f7f\u7528 apt-get \u5b89\u88c5 lxc\u3002\uff08\u4f3c\u4e4e\u53ef\u4ee5\u901a\u8fc7 snap \u5b89\u88c5 lxd\uff0c\u4f46\u6211\u9009\u62e9\u4e0d\u5c1d\u8bd5\uff09<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install -y lxc\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u8bbe\u7f6e\u9ebb\u70e6\uff0c\u53ea\u4f7f\u7528sudo\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo lxc-create -t download -n newvm\r\n$ sudo lxc-start -n newvm\r\n$ sudo lxc-attach -n newvm\r\n<\/code><\/pre>\n<p>\u5982\u679c\u51fa\u73b0\u9519\u8bef\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u505c\u6b62\u8fdb\u884c\u8ba4\u8bc1\u6765\u907f\u514d\u3002\u8bf7\u81ea\u884c\u627f\u62c5\u8d23\u4efb\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo lxc-create -t download -n newvm\r\nSetting up the GPG keyring\r\nERROR: Unable to fetch GPG key from keyserver\r\nlxc-create: newvm: lxccontainer.c: create_run_template: 1617 Failed to create container from template\r\nlxc-create: newvm: tools\/lxc_create.c: main: 327 Failed to create container newvm\r\n$ sudo lxc-create -t download -n newvm -- --no-validate\r\nDownloading the image index\r\nWARNING: Running without gpg validation!\r\n<\/code><\/pre>\n<h3>\u7cfb\u7edf\u8bbe\u7f6e<\/p>\n<h4>\u4fee\u6539UID\/GID\u3002<br \/>\n\u5728Linux\u4e2d\uff0cUID\/PID\u4ee5\u7528\u6237\u540d\u7684\u5f62\u5f0f\u6ce8\u518c\uff0c\u5e76\u4e14\u9ed8\u8ba4\u4e3a1000:1000\u3002\u7531\u4e8e\u4f7f\u7528\u4e86\u4e0d\u540c\u7684\u7f16\u53f7\u5f88\u591a\u5e74\uff0c\u5e76\u4e14\u5bb6\u5ead\u7ec4\u7684ID\u4e3a1000\uff0c\u6240\u4ee5\u9700\u8981\u8fdb\u884c\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code># groupmod -g 1001 mygrp\r\n# usermod -u 1001 -g 1001 myid\r\n# groupadd -g 1000 home\r\n<\/code><\/pre>\n<h4>\u589e\u52a0\u7528\u6237\u6dfb\u52a0\u5176\u4ed6\u4eba\u7684ID\u3002<\/p>\n<pre class=\"post-pre\"><code># groupadd -g 1002 hoge\r\n# useradd -u 1002 -g 1002 -m -d \/home\/hoge hoge\r\n<\/code><\/pre>\n<p>\u5c06\u5176\u6dfb\u52a0\u5230\u7fa4\u7ec4\u4e2d<\/p>\n<pre class=\"post-pre\"><code>usermod -a -G newgrp hoge\r\n<\/code><\/pre>\n<p>\u5982\u679c\u8981\u66f4\u6539\u6574\u4e2a\u5c0f\u7ec4\u7684\u540d\u79f0<\/p>\n<pre class=\"post-pre\"><code>groupmod --new-name newgname currentgname\r\n<\/code><\/pre>\n<p>\u53c2\u8003\u5176\u4ed6\u7528\u6237\u7684ID\u7684\u6b65\u9aa4<\/p>\n<pre class=\"post-pre\"><code>$ id -G hoge                         ; -G\u3067\u3001\u6570\u5b57\u306e\u307f\u4e00\u89a7\u8868\u793a\r\n$ sudo usermod -a -G a,b,c,d,e hoge  ; -G\u306b\u3001\",\"\u533a\u5207\u308a\u3067\u9023\u7d50\u3067\u304d\u308b\r\n<\/code><\/pre>\n<h4>\u5728lxde\u83dc\u5355\u4e2d\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8f\u3002\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6\u5728Google Chrome\u4e0a\u8fdb\u884c\u4e2a\u6027\u5316\u8bbe\u7f6e\uff0c\u5e76\u5c06\u5176\u6dfb\u52a0\u5230\u83dc\u5355\u4e2d\u3002\u5c06google-chrome2.desktop\u66f4\u6539\u4e3a\u60a8\u559c\u6b22\u7684\u540d\u79f0\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cp \/usr\/share\/applications\/google-chrome.desktop ~\/.local\/share\/applications\/google-chrome2.desktop\r\n$ vi ~\/.local\/share\/applications\/google-chrome2.desktop\r\n<\/code><\/pre>\n<p>\u66f4\u6539\u7684\u5730\u65b9\u6709\u4e24\u4e2a\u5730\u65b9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Name = \u30e1\u30cb\u30e5\u30fc\u8868\u793a\u6642\u306b\u8868\u793a\u3055\u308c\u308b\u540d\u524d\u306b\u306a\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Exec = \u5b9f\u969b\u306b\u8d77\u52d5\u3055\u308c\u308b\u30d7\u30ed\u30b0\u30e9\u30e0 (3\u7b87\u6240\u3042\u308b)<\/ul>\n<p>\u4f8b\u5982\uff0c\u53ef\u4ee5\u5c06\u5176\u66f4\u6539\u4e3a\u4ee5\u4e0b\u7684\u611f\u89c9\u3002<\/p>\n<pre class=\"post-pre\"><code>Name=Google Chrome2\r\nExec=\/usr\/bin\/google-chrome --user-data-dir=.config\/google-chrome2 --enable-crashpad\r\n<\/code><\/pre>\n<h4>\u5f53\u60a8\u8fdb\u884cSSH\u65f6\uff0c\u5c06\u5bc6\u7801\u8bbe\u7f6e\u4e3a\u81ea\u7531\u8bbf\u95ee\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ssh-copy-id -i ~\/.ssh\/id_rsa.pub myid@myhost\r\n<\/code><\/pre>\n<h4>\u4ea4\u6362\u6587\u4ef6\u7684\u8bbe\u7f6e\u7531\u4e8e\u4e0d\u559c\u6b22\u5206\u5272\u5206\u533a\uff0c\u6240\u4ee5\u57fa\u672c\u4e0a\u6211\u521b\u5efa\u5e76\u4f7f\u7528swap\u6587\u4ef6\u8fdb\u884c\u6ce8\u518c\u548c\u64cd\u4f5c\u3002<br \/>\n\u56e0\u4e3a\u8fd9\u662f\u4e00\u53f08GB\u7684\u673a\u5668\uff0c\u6240\u4ee5\u5927\u7ea6\u8981\u4fdd\u7559\u5927\u7ea6\u4e00\u534a\u5de6\u53f3\u7684\u7a7a\u95f4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo mkdir \/swap\r\n$ sudo dd if=\/dev\/zero of=\/swap\/swap.img bs=1M count=4096\r\n$ sudo chmod 600 \/swap\/swap.img\r\n$ sudo mkswap \/swap\/swap.img\r\n$ sudo swapon \/swap\/swap.img\r\n<\/code><\/pre>\n<h4>\u6587\u4ef6\u590d\u5236\u4f7f\u7528rsync\u3002<\/p>\n<pre class=\"post-pre\"><code>rsync -av --bwlimit=10000 (from) (to)\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6ca1\u6709\u5e26\u5bbd\uff0crsync\u4f1a\u5c3d\u5176\u6240\u80fd\u5730\u8fdb\u884c\u590d\u5236\uff0c\u5bfc\u81f4\u5176\u4ed6\u64cd\u4f5c\u53d8\u5f97\u7f13\u6162\u3002<\/p>\n<h4>\u6587\u4ef6\u590d\u52362<\/p>\n<pre class=\"post-pre\"><code>$ ionice -c3 nice -n 19 sudo rsync -axHAWXS --numericids --delete --info=progress2 \/ \/mnt\/root\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u91cc\u4f7f\u7528\u7684progress2\u5e76\u4e0d\u592a\u6709\u7528\uff0c\u53ea\u662f\u4e2a\u5492\u8bed\u3002<br \/>\n\u5e76\u4e14\uff0c\u4f5c\u4e3a\u8d1f\u8f7d\u63a7\u5236\uff0c\u53ef\u4ee5\u6307\u5b9abwlimit=10000\uff0c\u4f46\u662f\u5373\u4f7f\u670d\u52a1\u5668\u6ca1\u6709\u8d1f\u8f7d\uff0c\u4e5f\u4f1a\u575a\u6301\u65bd\u52a0\u5e26\u5bbd\u9650\u5236\uff0c\u6240\u4ee5\u6211\u653e\u5f03\u4e86\u3002<\/p>\n<h4>\u6587\u4ef6\u590d\u52363\u4f7f\u7528rsync\u548cfind\u7ed3\u5408\u7684\u65b9\u5f0f\u6765\u590d\u5236\u7279\u5b9a\u65f6\u95f4\u4e4b\u540e\u7684\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>rsync --progress  --files-from=&lt;(find digi -mtime -3 -type f) \/(from)\/ \/(to)\r\n<\/code><\/pre>\n<p>\u5728find\u547d\u4ee4\u4e2d\uff0c\u4e0b\u9762\u7684\u76ee\u5f55\u88ab\u5f15\u7528\uff0c\u6240\u4ee5\u9700\u8981\u76f8\u5e94\u5730\u8bbe\u7f6efrom\u548cto\u3002\u7b80\u5355\u6765\u8bf4\uff0c\u53ea\u9700\u4ece\u6839\u76ee\u5f55\u201c\/\u201d\u5f00\u59cb\u8ddf\u8e2a\u5373\u53ef\u3002<\/p>\n<p>\u8fd9\u4e2a\u4f8b\u5b50\u662f\u6307&#8221;-3&#8243;\uff0c\u6240\u4ee5\u8981\u590d\u5236\u4ece\u4e09\u5929\u524d\u5230\u73b0\u5728\u7684\u6587\u4ef6\u3002<\/p>\n<h4>\u627e\u5230\u5927\u6587\u4ef6\u4f7f\u7528du\u8fdb\u884c\u6316\u6398\u3002\u53ef\u4ee5\u4f7f\u7528max-depth\u53c2\u6570\u6765\u6307\u5b9a\u6316\u6398\u7684\u6df1\u5ea6\u3002<br \/>\n\u7136\u540e\uff0c\u53ea\u9700\u8981\u6309\u7167\u4ece\u5927\u5230\u5c0f\u7684\u987a\u5e8f\u8fdb\u884c\u6392\u5e8f\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo du -h --max-depth=1 --exclude=\"hoge\" \/ | sort -hr\r\n<\/code><\/pre>\n<h4>cpan\u7684\u675f\u7f1a\u56e0\u4e3a\u6211\u662f\u719f\u6089Perl\u7684\u4eba\uff0c\u6240\u4ee5\u8981\u5b89\u88c5Perl\u3002<br \/>\n\u5982\u679c\u5728CPAN\u4e0a\u65e0\u6cd5\u6210\u529f\u5b89\u88c5\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u901a\u8fc7apt-get\u6765\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code># apt-get install -y libXXX-YYY-ZZZ-perl\r\n<\/code><\/pre>\n<p>\u5982\u679c cpan install \u4e0d\u8d77\u4f5c\u7528\uff0c\u5c1d\u8bd5\u4f7f\u7528 apt-get \u6216\u8005\u901a\u8fc7 cpan \u63a7\u5236\u53f0\u8fdb\u884c install \u3002<\/p>\n<h4>\u91cd\u65b0\u8bbe\u5b9a crontab<\/p>\n<pre class=\"post-pre\"><code>$ crontab -e\r\n<\/code><\/pre>\n<p>\u6587\u4ef6\u7684\u7f16\u8f91\u4f4d\u7f6e\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>\/var\/spool\/crontabs\/myid\r\n<\/code><\/pre>\n<p>\u53ea\u8981\u590d\u5236\u7c98\u8d34\u6240\u9700\u7684\u4efb\u52a1\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<h4>\u5b89\u88c5Node.js\u56e0\u4e3a\u8fd9\u4e0d\u662f\u4e00\u4e2a\u771f\u8bda\u7684\u8a00\u8f9e\uff0c\u6240\u4ee5\u6211\u5c06\u5728\u8fd9\u91cc\u8fdb\u884c\u8bb0\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install -y curl\r\n# curl -sL https:\/\/deb.nodesource.com\/setup_12.x | bash -\r\n$ sudo apt-get install -y nodejs\r\n<\/code><\/pre>\n<h4>\u505c\u6b62\u4f7f\u7528IPv6<\/p>\n<pre class=\"post-pre\"><code>net.ipv6.conf.all.disable_ipv6 = 1\r\nnet.ipv6.conf.default.disable_ipv6 = 1\r\n<\/code><\/pre>\n<h4>\u5982\u679c\u5728\u4f7f\u7528umount\u547d\u4ee4\u65f6\u9047\u5230\u56f0\u96be\uff0c<\/p>\n<pre class=\"post-pre\"><code># umount -f\r\n# umount -l\r\n<\/code><\/pre>\n<p>\u5982\u679c\u201c-f\u201d\u4e0d\u884c\uff0c\u5c31\u5c1d\u8bd5\u7528\u201c-l\u201d\u6765\u505a\u3002<\/p>\n<h4>\u65f6\u533a\u5982\u679c\u60a8\u9009\u62e9\u4ee5en-us\u6a21\u5f0f\u8fdb\u884c\u5b89\u88c5\uff0c\u90a3\u4e48\u53ea\u80fd\u8bbe\u7f6e\u7f8e\u56fd\u65f6\u95f4\uff0c\u56e0\u6b64\u9700\u8981\u8fdb\u884c\u4ee5\u4e0b\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo timedatectl set-timezone Asia\/Tokyo\r\n<\/code><\/pre>\n<h4>\u53cc\u753b\u9762\uff0c\u5de6\u53f3\u63a7\u5236<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">xrandr\u3067\u30c7\u30d0\u30a4\u30b9\u540d\u3092\u78ba\u8a8d<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">xrandr (option)\u3067\u5165\u308c\u66ff\u3048<\/ul>\n<pre class=\"post-pre\"><code>$ xrandr \r\nScreen 0: minimum 320 x 200, current 4480 x 1440, maximum 8192 x 8192\r\nHDMI-1 connected primary 1920x1080+2560+0 (normal left inverted right x axis y axis) 477mm x 268mm\r\n   1920x1080     60.00*+  60.00    50.00    59.94  \r\n   1920x1080i    60.00    60.00    50.00    59.94  \r\n   1680x1050     59.88  \r\n   1280x1024     60.02  \r\n   1280x960      60.00  \r\n   1152x864      59.97  \r\n   1280x720      60.00    60.00    50.00    59.94  \r\n   1024x768      60.00  \r\n   800x600       60.32  \r\n   720x576       50.00  \r\n   720x480       60.00    60.00    59.94    59.94  \r\n   640x480       60.00    59.94    59.94  \r\nHDMI-2 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 280mm x 150mm\r\n   2560x1440     59.95*+  49.96  \r\n   1920x1080     60.00    60.00    50.00    59.94  \r\n   1920x1080i    60.00    59.94  \r\n   1400x1050     59.95  \r\n   1280x1024     75.02    60.02  \r\n   1440x900      59.90  \r\n   1280x960      60.00  \r\n   1280x720      60.00    60.00    59.94  \r\n   1024x768      75.03    70.07    60.00  \r\n   800x600       72.19    75.00    60.32    56.25  \r\n   640x480       75.00    72.81    60.00    59.94  \r\n   720x400       70.08  \r\n$ xrandr --output HDMI-1 --right-of HDMI-2\r\n<\/code><\/pre>\n<p>\u6211\u5bb6\u7684\u914d\u7f6e\u662f\uff0c2K\u5728\u5de6\u8fb9\uff0cFHD\u5728\u53f3\u8fb9\u3002\u8bf7\u8bbe\u5b9a\u9009\u9879\uff0c\u4f7f\u5f972K\uff08=HDMI-2\uff09\u7684\u53f3\u8fb9\u662fFHD\uff08=HDMI-1\uff09\u3002\u5728\u8f93\u5165\u547d\u4ee4\u540e\uff0c\u5de6\u53f3\u4f1a\u4e92\u6362\u4f4d\u7f6e\u3002<\/p>\n<h4>\u901a\u8fc7Debian\u8fde\u63a5\u5230xrdp\u670d\u52a1\u5668\u3002<br \/>\n\u901a\u5e38\u6211\u4f1a\u4eceWindows PC\u8fdb\u884c\u8fde\u63a5\uff0c\u4f46\u5076\u5c14\u9700\u8981\u76f4\u63a5\u8bbf\u95ee\u8fd0\u884cxrdp\u7684\u670d\u52a1\u5668\u672c\u8eab\uff0c\u6240\u4ee5\u6211\u8fdb\u884c\u4e86\u5c1d\u8bd5\u3002<\/p>\n<p>\u9996\u5148\uff0c\u5b89\u88c5freerdp\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install freerdp\r\n<\/code><\/pre>\n<p>\u4e00\u65e6\u542f\u52a8\uff0c\u5c31\u4f1a\u9047\u5230\u4ee5\u4e0b\u9519\u8bef\uff0c\u4ece\u800c\u963b\u788d\u4e86\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>$ xfreerdp 192.168.0.2\r\n(snip)\r\n[xx:xx:xx:308] [2596:2597] [ERROR][com.freerdp.core.update] - [0x03] Cache Glyph - SERVER BUG: The support for this feature was not announced! Use \/relax-order-checks to ignore\r\n(snip)\r\n<\/code><\/pre>\n<p>\u8981\u907f\u514d\u8fd9\u4e2a\u95ee\u9898\uff0c\u9700\u8981\u6dfb\u52a0\u4e0d\u540c\u7684\u9009\u9879\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">+glyph-cache<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\/relax-order-checks<\/ul>\n<p>\u53e6\u5916\uff0c\u5f53\u6307\u5b9a\u8fd9\u4e9b\u9009\u9879\u65f6\uff0c\u9644\u52a0\u9009\u9879\u7684\u65b9\u5f0f\u4f1a\u6709\u6240\u4e0d\u540c\uff0c\u6700\u7ec8\u4ee5\u4ee5\u4e0b\u65b9\u5f0f\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>$ xfreerdp \/w:1920 \/h:1080 \/v:192.168.0.2 +glyph-cache \/relax-order-checks\r\n<\/code><\/pre>\n<p>\u5206\u8fa8\u7387\u662f1920&#215;1080\u7684\uff0cxrdp\u670d\u52a1\u5668\u7684\u8bbe\u7f6e\u3002<\/p>\n<h4>\u5982\u679c\u5c06Docker\u4e0eKVM\u73af\u5883\u5171\u5b58\uff0c\u90a3\u4e48iptables\u7684\u914d\u7f6e\u5c31\u4f1a\u51fa\u95ee\u9898\u3002\u4ece\u9664\u4e86\u4e3b\u673a\u4e4b\u5916\u7684\u8bbe\u5907\u4e0aping\u4e3b\u673a\uff0c\u6216\u4ece\u865a\u62df\u673a\u4e0aping\u4e3b\u673a\u90fd\u4f1a\u53d1\u751f\u65e0\u6cd5\u901a\u8fc7\u7684\u60c5\u51b5\u3002\u901a\u8fc7\u66f4\u6539iptables\u6765\u8fdb\u884c\u5e94\u5bf9\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo iptables -A FORWARD -i br0 -o br0 -j ACCEPT\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u81ea\u5df1\u7684\u5fc3\u5b89\u88c5\u4e86Docker\uff0c\u7ed3\u679c\u906d\u9047\u4e86\u7cdf\u7cd5\u7684\u7ecf\u5386\u3002<\/p>\n<h4>lxc\u7684\u4e00\u5207\u7531\u4e8e\u5728Debian\u4e0a\u65e0\u6cd5\u901a\u8fc7apt-get\u5b89\u88c5lxd\uff0c\u56e0\u6b64\u6211\u4eec\u52aa\u529b\u4f7f\u7528lxc\u3002<\/p>\n<p>\u8981\u8fdb\u884c\u8bbe\u7f6e\uff0c\u8bf7\u64cd\u4f5c\u4f4d\u4e8econfig\u4e2d\u7684\u4e0b\u4e00\u4e2a\u4f4d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>\/var\/lib\/lxc\/{machine}\/config\r\n<\/code><\/pre>\n<div>\n<div class=\"post-table\">\u6a5f\u80fd\u5909\u6570\u540d\u5024\u81ea\u52d5\u8d77\u52d5\u306e\u8a2d\u5b9alxc.start.auto0:off, 1:ontun\u751f\u6210-1lxc.cgroup.devices.allowc 10:200 rwmtun\u751f\u6210-2lxc.mount.entry\/dev\/net\/tun dev\/net\/tun none bind,create=fileapparmor\u3067\u5f15\u3063\u304b\u304b\u3063\u305f\u3089lxc.apparmor.profileunconfined\u7531\u4e8etun\u4e0d\u5bb9\u6613\u770b\u6e05\uff0c\u56e0\u6b64\u4ee5\u4e0b\u63d0\u4f9b\u53c2\u8003\u3002<\/p>\n<pre class=\"post-pre\"><code>lxc.cgroup.devices.allow = c 10:200 rwm\r\nlxc.mount.entry = \/dev\/net\/tun dev\/net\/tun none bind,create=file\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6709\u8fd9\u4e2a\uff0c\u4f60\u53ef\u4ee5\u5728LXC\u5bb9\u5668\u4e2d\u6784\u5efa\u4f7f\u7528tun\u7684VPN\uff0c\u4f8b\u5982OpenVPN\u6216SoftEther\u3002<\/p>\n<p>\u5982\u679c\u4f7f\u7528SoftEther\uff08\u5ba2\u6237\u7aef\uff09\uff0c\u9700\u8981\u5bf9tun\u8fdb\u884cDHCP\u8bbe\u7f6e\uff08\u5982\u679c\u662fUbuntu\uff0c\u5219\u5728netplan\u4e2d\u6dfb\u52a0\uff09\u3002\u53e6\u5916\uff0c\u5bb9\u6613\u5ffd\u7565\u7684\u662f\uff0c\u5982\u679c\u5fd8\u8bb0\u5728\/etc\/sysctl.conf\u4e2d\u8bbe\u7f6eip forward\uff0c\u5219\u65e0\u6cd5\u8fdb\u884c\u901a\u4fe1\u3002<\/p>\n<p>\u5982\u679c\u5728\u5b89\u88c5\u65f6\u9047\u5230\u8ba4\u8bc1\u9519\u8bef\u5e76\u505c\u6b62\uff0c\u8bf7\u6dfb\u52a0\u4ee5\u4e0b\u7684\u5492\u8bed\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo lxc-create -n mymachine -t download -- --no-validate\r\n<\/code><\/pre>\n<p>\u5982\u679c\u53d1\u751f\u4e86AppArmor\u9519\u8bef\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u8fd9\u4e2a\u5492\u8bed\u3002<\/p>\n<pre class=\"post-pre\"><code>lxc.apparmor.profile=unconfined\r\n<\/code><\/pre>\n<h4>\u4f7f\u7528\u201cwhile\u201d\u4ee3\u66ff\u201cwatch\u201d\u3002\u867d\u7136\u6709 watch \u547d\u4ee4\u6765\u5faa\u73af\u6267\u884c\u64cd\u4f5c\uff0c\u4f46\u7531\u4e8e\u5b83\u4e0d\u592a\u9002\u5408\u6309\u65f6\u95f4\u987a\u5e8f\u6267\u884c\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 while \u6765\u5b9e\u73b0\u3002<\/p>\n<pre class=\"post-pre\"><code>while [ 1 ]; do df | grep sda1; sleep 5;done\r\n<\/code><\/pre>\n<h4>\u4f7f\u7528shell\u811a\u672c\u7684getopts<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\nwhile getouts ab:c: options\r\ndo\r\n    case $options in\r\n      a)\r\n        echo \"option a. without an arg\"\r\n        ;;\r\n      b)\r\n        echo \"option b. with an arg, ${OPTARG}\"\r\n        argb=$OPTARG\r\n        ;;\r\n      c)\r\n        echo \"option c. with an arg, ${OPTARG}\"\r\n        argc=$OPTARG\r\n        ;;\r\n      \\?)\r\n        echo \"Unknown params. Quit!!\"\r\n        exit 1\r\n    esac\r\ndone\r\n<\/code><\/pre>\n<p>\u5982\u679c\u9700\u8981\u53c2\u6570\uff0c\u5c06&#8221;:&#8221;\u653e\u5728\u6587\u672c\u540e\u9762\u3002<br \/>\n\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0ca\u6ca1\u6709\u53c2\u6570\uff0cb\u548cc\u90fd\u6709\u53c2\u6570\u3002\u6709\u53c2\u6570\u7684\u60c5\u51b5\u4e0b\uff0c\u90fd\u4f1a\u88ab\u5b58\u50a8\u5728\u540d\u4e3aOPTARG\u7684\u53d8\u91cf\u4e2d\uff0c\u56e0\u6b64\u6bcf\u6b21\u90fd\u9700\u8981\u8f6c\u79fb\u5230\u53e6\u4e00\u4e2a\u53d8\u91cf\u4e2d\u3002<\/p>\n<p>\u56e0\u4e3a\u4e0d\u77e5\u9053\u53c2\u6570\u7684\u83b7\u53d6\uff08OPTARG\u5177\u6709\u503c\uff09\u9700\u8981\u7528 &#8220;:&#8221;\uff0c\u6240\u4ee5\u9677\u5165\u4e86\u56f0\u5883\u3002<\/p>\n<h4>\u4f7f\u7528\u84dd\u7259<\/p>\n<pre class=\"post-pre\"><code>$ bluetoothctl devices\r\n$ bluetoothctl remove xx:xx:xx:xx:xx:xx\r\n$ sudo bluetoothctl scan on\r\n$ bluetoothctl connect xx:xx:xx:xx:xx:xx\r\n<\/code><\/pre>\n<p>\u5728\u8bbe\u5907\u4e0a\u663e\u793a\u8fde\u63a5\u7684\u7269\u54c1\u3002<br \/>\n\u8981\u65ad\u5f00\u8fde\u63a5\uff0c\u8bf7\u79fb\u9664(remove)\u3002<br \/>\n\u901a\u8fc7\u626b\u63cf(scan)\u6765\u67e5\u627e\u76ee\u6807\u8bbe\u5907\u3002<br \/>\n\u901a\u8fc7\u8fde\u63a5(connect)\u6765\u8fde\u63a5\u76ee\u6807\u8bbe\u5907\u3002<\/p>\n<h4>\u4e00\u65e6\u5b89\u88c5\u4e86Ubuntu\uff0c\u7531\u4e8e\u4f7f\u7528\u7684\u73af\u5883\u7684\u539f\u56e0\uff0c\u5bfc\u81f4\u65e0\u6cd5\u68c0\u7d22\u5230\u9ed8\u8ba4\u7f51\u5173\u7684\u95ee\u9898\u3002\u7531\u4e8eDHCP\u670d\u52a1\u5668\u7684\u95ee\u9898\uff0cDHCP\u5ba2\u6237\u7aef\u65e0\u6cd5\u83b7\u53d6\u9ed8\u8ba4\u7f51\u5173\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4fee\u6539Netplan\u5e76\u52aa\u529b\u89e3\u51b3\u3002<\/p>\n<pre class=\"post-pre\"><code>network:\r\n  version: 2\r\n  ethernets:\r\n    eth0:\r\n      dhcp4: true\r\n      routes:\r\n        - to: 0.0.0.0\/0\r\n          via: 192.168.0.1\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u5728\u9ed8\u8ba4\u7f51\u5173\u4e2d\u65e0\u6cd5\u627e\u5230\u641c\u7d22\u7ed3\u679c\uff0c\u6240\u4ee5\u6211\u9009\u62e9\u4e86\u76f4\u63a5\u6dfb\u52a0\u5e38\u89c4\u8def\u7531\u3002<\/p>\n<h4>\u4f7f\u7528\u6700\u65b0\u7684\u5185\u6838\u5f53\u66f4\u6362\u4e86\u4e3b\u673a\u540e\uff0c\u4ee5\u592a\u7f51\uff08Realtek R8111\uff09\u548c\u65e0\u7ebf\u7f51\u5361\uff08Intel AX200\uff09\u90fd\u65e0\u6cd5\u88ab\u8bc6\u522b\u3002\u51fa\u73b0\u63d0\u793a\u8981\u4f7f\u7528Google\u548c\u8865\u4e01\u7a0b\u5e8f\uff0c\u6240\u4ee5\u8bb0\u5f55\u4e86\u4e0b\u6765\u3002<br \/>\n\u4e3a\u4e86\u575a\u6301\u4e0b\u53bb\uff0c\u6211\u987d\u5f3a\u5730\u8fdb\u884c\u4e86apt update\/upgrade\uff0c\u56e0\u4e3a\u53ef\u80fd\u4f1a\u88ab\u8986\u76d6\u6389\u3002<\/p>\n<pre class=\"post-pre\"><code>echo deb http:\/\/deb.debian.org\/debian buster-backports main contrib non-free | sudo tee \/etc\/apt\/sources.list.d\/buster-backports.list\r\nsudo apt update\r\nsudo apt install -t buster-backports linux-image-amd64\r\nsudo apt install -t buster-backports firmware-linux\r\nsudo apt install -t buster-backports firmware-iwlwifi\r\n<\/code><\/pre>\n<p>\u4ece\u8fd9\u91cc\u548c\u8fd9\u91cc\u6458\u5f55<\/p>\n<h4>\u79fb\u52a8\u542f\u52a8\u78c1\u76d8\u8d77\u52d5\u65f6\uff0c\u5c06\u6570\u636e\u8fc1\u79fb\u5230\u5176\u4ed6\u78c1\u76d8<br \/>\n\u5047\u8bbe\u5f53\u524d\u8fd0\u884c\u6570\u636e\u5728\/dev\/sdaX\u4e0a\uff0c\/dev\/sddX\u4f5c\u4e3a\u76ee\u6807\u8fdb\u884c\u590d\u5236\u3002<\/p>\n<h5>\u8bf7\u786e\u8ba4\u65b0\u78c1\u76d8\u7684\u7f16\u53f7\u6839\u636edmesg\u7684\u663e\u793a\uff0c\u627e\u5230\u76ee\u6807\u8bbe\u5907\u3002\u8fd9\u6b21\u662f\u4e09\u661f\u76842.5\u82f1\u5bf8\u786c\u76d8\uff0c\u6240\u4ee5\u7528&#8221;sams&#8221;\u8fdb\u884c\u641c\u7d22\u3002\u7136\u540e\uff0c\u786e\u8ba4\u4e86id\u4e3a5\uff0c\u6240\u4ee5\u7528&#8221;sd 5&#8243;\u8fdb\u884c\u8fdb\u4e00\u6b65\u641c\u7d22\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo dmesg | grep -i \"sams\\|sd 5\"\r\n[    1.685085] ata6.00: ATA-11: Samsung SSD 860 QVO 1TB, RVQ01B6Q, max UDMA\/133\r\n[    1.794282] scsi 5:0:0:0: Direct-Access     ATA      Samsung SSD 860  1B6Q PQ: 0 ANSI: 5\r\n[    1.796952] sd 5:0:0:0: [sdd] 1953525168 512-byte logical blocks: (1.00 TB\/932 GiB)\r\n[    1.796954] sd 5:0:0:0: [sdd] Write Protect is off\r\n[    1.796955] sd 5:0:0:0: [sdd] Mode Sense: 00 3a 00 00\r\n[    1.796959] sd 5:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA\r\n[    1.798308] sd 5:0:0:0: [sdd] supports TCG Opal\r\n[    1.798308] sd 5:0:0:0: [sdd] Attached SCSI disk\r\n[    4.446208] sd 5:0:0:0: Attached scsi generic sg3 type 0\r\n<\/code><\/pre>\n<h5>\u683c\u5f0f<br \/>\n\u4e3a\u4e86\u4f7f\u5176\u4e0e\u539f\u59cb\u6587\u4ef6\u76f8\u540c\uff0c\u4f7f\u7528parted\u5de5\u5177\u3002<br \/>\n\u4fdd\u6301\u539f\u6709\u914d\u7f6e\u3002\u7531\u4e8e\u4f7f\u7528\u4e86mdadm\uff0c\u56e0\u6b64\u91c7\u7528\u4e86RAID\uff0c\u4e0d\u7528\u62c5\u5fc3\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo parted \/dev\/sda u s p\r\nModel: ATA ST2000LM015-2E81 (scsi)\r\nDisk \/dev\/sda: 3907029168s\r\nSector size (logical\/physical): 512B\/4096B\r\nPartition Table: gpt\r\nDisk Flags: \r\n\r\nNumber  Start    End          Size         File system  Name  Flags\r\n 1      2048s    124927s      122880s      fat32              boot, esp\r\n 2      124928s  3907028991s  3906904064s                     raid\r\n<\/code><\/pre>\n<p>\u6309\u7167\u8fd9\u4e2a\u8fdb\u884c\u64cd\u4f5c\uff0c\u786e\u4fdd\u4e0e\u8fd9\u4e2a\u76f8\u540c\u3002\u4e0d\u8fc7\uff0c\u7531\u4e8e\u5bb9\u91cf\u4e0d\u540c\uff0c\u7b2c\u4e8c\u6b65\u662f\u6307\u5b9a\u78c1\u76d8\u7684\u6700\u5927\u5927\u5c0f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo parted \/dev\/sdd\r\nGNU Parted 3.2\r\nUsing \/dev\/sdd\r\nWelcome to GNU Parted! Type 'help' to view a list of commands.\r\n(parted) u s p                                                            \r\nModel: ATA Samsung SSD 860 (scsi)\r\nDisk \/dev\/sdd: 1953525168s\r\nSector size (logical\/physical): 512B\/512B\r\nPartition Table: msdos\r\nDisk Flags: \r\n\r\nNumber  Start  End          Size         Type     File system  Flags\r\n\r\n(parted) mklabel gpt                                                      \r\nWarning: The existing disk label on \/dev\/sdd will be destroyed and all data on\r\nthis disk will be lost. Do you want to continue?\r\nYes\/No? yes                                                               \r\n(parted) p                                                                \r\nModel: ATA Samsung SSD 860 (scsi)\r\nDisk \/dev\/sdd: 1953525168s\r\nSector size (logical\/physical): 512B\/512B\r\nPartition Table: gpt\r\nDisk Flags: \r\n\r\nNumber  Start  End  Size  File system  Name  Flags\r\n\r\n(parted) mkpart                                                           \r\nPartition name?  []?                                                      \r\nFile system type?  [ext2]? fat32                                          \r\nStart? 2048s                                                              \r\nEnd? 124927s                                                              \r\n(parted) p                                                                \r\nModel: ATA Samsung SSD 860 (scsi)\r\nDisk \/dev\/sdd: 1953525168s\r\nSector size (logical\/physical): 512B\/512B\r\nPartition Table: gpt\r\nDisk Flags: \r\n\r\nNumber  Start  End      Size     File system  Name  Flags\r\n 1      2048s  124927s  122880s  fat32\r\n\r\n(parted) set 1 esp on                                                     \r\n(parted) p\r\nModel: ATA Samsung SSD 860 (scsi)\r\nDisk \/dev\/sdd: 1953525168s\r\nSector size (logical\/physical): 512B\/512B\r\nPartition Table: gpt\r\nDisk Flags: \r\n\r\nNumber  Start  End      Size     File system  Name  Flags\r\n 1      2048s  124927s  122880s  fat32              boot, esp\r\n\r\n(parted) mkpart\r\nPartition name?  []?                                                      \r\nFile system type?  [ext2]? ext4                                           \r\nStart? 124928s                                                            \r\nEnd? 1953525167s                                                         \r\nWarning: You requested a partition from 124928s to 1953525167s (sectors\r\n124928..1953525167).\r\nThe closest location we can manage is 124928s to 1953525134s (sectors\r\n124928..1953525134).\r\nIs this still acceptable to you?\r\nYes\/No? yes                                                               \r\n(parted) p                                                                \r\nModel: ATA Samsung SSD 860 (scsi)\r\nDisk \/dev\/sdd: 1953525168s\r\nSector size (logical\/physical): 512B\/512B\r\nPartition Table: gpt\r\nDisk Flags: \r\n\r\nNumber  Start    End          Size         File system  Name  Flags\r\n 1      2048s    124927s      122880s      fat32              boot, esp\r\n 2      124928s  1953525134s  1953400207s  ext4\r\n\r\n(parted) q                                                                \r\nInformation: You may need to update \/etc\/fstab.\r\n\r\n$ sudo mkfs.vfat -v -F 32 \/dev\/sdd1\r\nmkfs.fat 4.1 (2017-01-24)\r\n\/dev\/sdd1 has 255 heads and 63 sectors per track,\r\nhidden sectors 0x0800;\r\nlogical sector size is 512,\r\nusing 0xf8 media descriptor, with 122880 sectors;\r\ndrive number 0x80;\r\nfilesystem has 2 32-bit FATs and 1 sector per cluster.\r\nFAT size is 945 sectors, and provides 120958 clusters.\r\nThere are 32 reserved sectors.\r\nVolume ID is 83eac85f, no volume label.\r\n$ sudo mkfs.ext4 -v \/dev\/sdd2\r\nmke2fs 1.44.5 (15-Dec-2018)\r\nfs_types for mke2fs.conf resolution: 'ext4'\r\nDiscarding device blocks: done                            \r\nFilesystem label=\r\nOS type: Linux\r\nBlock size=4096 (log=2)\r\nFragment size=4096 (log=2)\r\nStride=0 blocks, Stripe width=0 blocks\r\n61046784 inodes, 244175025 blocks\r\n12208751 blocks (5.00%) reserved for the super user\r\nFirst data block=0\r\nMaximum filesystem blocks=2392850432\r\n7452 block groups\r\n32768 blocks per group, 32768 fragments per group\r\n8192 inodes per group\r\nFilesystem UUID: 5a4ca314-e967-42fb-bc72-825334073196\r\nSuperblock backups stored on blocks: \r\n\t32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, \r\n\t4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, \r\n\t102400000, 214990848\r\n\r\nAllocating group tables: done                            \r\nWriting inode tables: done                            \r\nCreating journal (262144 blocks): done\r\nWriting superblocks and filesystem accounting information: done     \r\n<\/code><\/pre>\n<h5>\u590d\u5236\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code>$ sudo mkdir \/mnt\r\n$ sudo mount \/dev\/sdd2 \/mnt\r\n$ sudo rsync -avP --exclude='\/backup' --exclude='\/home\/kvm' --exclude='\/boot\/efi\/EFI' --exclude='\/dev' --exclude='\/mnt' --exclude='\/proc' --exclude='\/sys' --exclude='\/tmp' \/ \/mnt\r\n$ sudo mount \/dev\/sdd1 \/mnt\/boot\/efi\r\n$ sudo rsync -avP \/boot\/efi\/ \/mnt\/boot\/efi\r\n$ sudo mkdir \/mnt\/dev\r\n$ sudo mount --bind \/dev \/mnt\/dev\r\n$ sudo mkdir \/mnt\/dev\/pts\r\n$ sudo mount --bind \/dev\/pts \/mnt\/dev\/pts\r\n$ sudo mkdir \/mnt\/proc\r\n$ sudo mount --bind \/proc \/mnt\/proc\r\n$ sudo mkdir \/mnt\/sys\r\n$ sudo mount --bind \/sys \/mnt\/sys\r\n$ sudo chroot \/mnt\r\n# grub-install \/dev\/sdd\r\nInstalling for x86_64-efi platform.\r\nInstallation finished. No error reported.\r\n# update-grub\r\nGenerating grub configuration file ...\r\n(snip)\r\n# exit\r\n$ findmnt\r\n$ sudo umount \/mnt\/sys\/fs\/fuse\/connections\r\n$ sudo umount \/mnt\/sys\r\n$ sudo umount \/mnt\/proc\r\n$ sudo umount \/mnt\/dev\/pts\r\n$ sudo umount \/mnt\/dev\r\n$ lsblk -f \/dev\/sdd\r\nNAME FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT\r\nsdd                                                                   \r\n\u251c\u2500sdd1\r\n\u2502    vfat         83EA-C85F                                           \r\n\u2514\u2500sdd2\r\n     ext4         5a4ca314-e967-42fb-bc72-825334073196  496.4G    41% \/mnt\r\n$ sudo vi \/mnt\/etc\/fstab    # update uuid in fstab\r\n$ sudo umount \/mnt\r\n<\/code><\/pre>\n<h5>\u91cd\u65b0\u542f\u52a8\u5982\u679c\u53ef\u4ee5\u66f4\u6539uuid\uff0c\u5c31\u5b8c\u6210\u4e86\u3002\u7136\u540e\uff0c\u4ecebios\u4e2d\u9009\u62e9\u8fd9\u4e2a\u65b0\u7684hdd\uff08sdd\uff09\uff0c\u7136\u540e\u542f\u52a8\u3002\u5982\u679c\u8bbe\u7f6e\u6b63\u786e\uff0c\u5e94\u8be5\u4f1a\u4ece\u8fd9\u91cc\u542f\u52a8\u3002\uff08\/dev\/sddX\u786e\u8ba4\u5df2\u7ecf\u6210\u4e3a\u6839\u76ee\u5f55(\/)\u3002\uff09<\/p>\n<pre class=\"post-pre\"><code>$ sudo reboot\r\n(snip)\r\n$ df | grep sdd\r\n\/dev\/sdd2       960321244  390952068  520517788  43% \/\r\n\/dev\/sdd1           60479       3330      57150   6% \/boot\/efi\r\n<\/code><\/pre>\n<h2>\u989d\u5916\u7ae0\u8282<\/p>\n<h3>\u8fde\u63a5\u5b50\u7f51\u95f4\u5728\u8fde\u63a5\u5bb6\u5ead\u7f51\u7edc\uff08eth0\uff09\uff1a192.168.0.0\/24 \u548c\u76ee\u6807\u7f51\u7edc\uff08vpn0\uff09\uff1a172.16.0.0\/16 \u65f6\u7684\u914d\u7f6e\u3002\u5728\u4e2d\u7ee7\u670d\u52a1\u5668\u4e0a\uff0c\u8fdb\u884c\u4ee5\u4e0b\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code># iptables -A FORWARD -i eth0 -o vpn0 -j ACCEPT\r\n# iptables -t nat -A POSTROUTING -o vpn0 -s 192.168.0.0\/24 -j MASQUERADE\r\n# iptables -A FORWARD -i vpn0 -o eth0 -j ACCEPT\r\n# iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0\/16 -j MASQUERADE\r\n<\/code><\/pre>\n<p>\u5728\u540c\u4e00\u5b50\u7f51\u4e2d\u7684\u5176\u4ed6PC\u4e0a\uff0c\u9700\u8981\u8fdb\u884c\u8def\u7531\u8bbe\u7f6e\u3002192.168.0.1 \u662f\u4e2d\u7ee7\u670d\u52a1\u5668\u7684 IP \u5730\u5740\u3002<\/p>\n<pre class=\"post-pre\"><code># route add -net 172.16.0.0\/16 gw 192.168.0.1\r\n<\/code><\/pre>\n<h3>\u66f4\u6539\u865a\u62df\u56fe\u50cf\u7684\u5bb9\u91cf<\/p>\n<pre class=\"post-pre\"><code>$ qemu-img resize -f raw &lt;filename&gt; &lt;size&gt;G\/M\/K\r\n&lt;attach to some vm&gt;\r\n$ sudo fdisk \/dev\/vdx\r\nfdisk&gt; p\r\nfdisk&gt; d\r\nfdisk&gt; n (p\/1\/2048\/&lt;max&gt;\/no)\r\nfdisk&gt; p\r\nfdisk&gt; w\r\n$ sudo e2fsck \/dev\/vdxy\r\n$ sudo resize2fs \/dev\/vdxy\r\n<\/code><\/pre>\n<h3>\u4f7f\u7528virsh\u547d\u4ee4\u8fde\u63a5USB\u4ec5\u63d0\u4f9b\u4e00\u79cd\u9009\u9879\uff1a\u56e0\u4e3a\u53ea\u9700\u8981\u63d2\u62d4USB\uff0c\u6240\u4ee5\u6211\u6709\u4e00\u79cd\u8feb\u5207\u7684\u51b2\u52a8\u3002\u7531\u4e8e\u64cd\u4f5c\u7b80\u5355\uff0c\u6211\u8fdb\u884c\u4e86\u8bb0\u5f55\u3002<\/p>\n<p>\u8bf7\u786e\u8ba4\u8981\u8fde\u63a5\u7684USB\u8bbe\u5907\u7684\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ lsusb\r\nBus 002 Device 001: ID XXXX:XXXX Linux Foundation 3.0 root hub\r\nBus 001 Device 005: ID XXXX:XXXX Logitech, Inc. Unifying Receiver\r\nBus 001 Device 016: ID abcd:0123 ABCD, My Target\r\nBus 001 Device 001: ID XXXX:XXXX Linux Foundation 2.0 root hub\r\n<\/code><\/pre>\n<p>\u5728\u4f7f\u7528lsusb\u5de5\u5177\u65f6\uff0c\u9996\u5148\u83b7\u53d6\u76ee\u6807\u8bbe\u5907\u7684ID\u4fe1\u606f\u3002\u5728\u8fd9\u91cc\uff0c\u8bbe\u5907\u7684ID\u4fe1\u606f\u4e3a&#8221;abcd:0123&#8243;\u3002\u7136\u540e\u5c06\u6b64\u4fe1\u606f\u8f6c\u6362\u4e3aXML\u683c\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;hostdev<\/span> <span class=\"na\">mode=<\/span><span class=\"s\">'subsystem'<\/span> <span class=\"na\">type=<\/span><span class=\"s\">'usb'<\/span> <span class=\"na\">managed=<\/span><span class=\"s\">'yes'<\/span><span class=\"nt\">&gt;<\/span>\r\n\t<span class=\"nt\">&lt;source&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;vendor<\/span> <span class=\"na\">id=<\/span><span class=\"s\">'0xabcd'<\/span><span class=\"nt\">\/&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;product<\/span> <span class=\"na\">id=<\/span><span class=\"s\">'0x0123'<\/span><span class=\"nt\">\/&gt;<\/span>\r\n\t<span class=\"nt\">&lt;\/source&gt;<\/span>\r\n<span class=\"nt\">&lt;\/hostdev&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u8fd9\u4e2a\u6587\u4ef6\uff0c\u53ea\u9700\u8981\u9644\u52a0\u6216\u5206\u79bb\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code># virsh attach-device &lt;vmname&gt; --file myusb.xml\r\n# virsh detach-device &lt;vmname&gt; --file myusb.xml\r\n<\/code><\/pre>\n<p>\u5373\u4f7f\u8bbe\u5907ID\u53d1\u751f\u53d8\u5316\uff0c\u5b83\u4ecd\u7136\u6709\u6548\uff0c\u975e\u5e38\u65b9\u4fbf\u3002<\/p>\n<h3>\u5c06\u8def\u5f84\u6dfb\u52a0\u5230\/usr\/local\/lib\u867d\u7136\u4e5f\u53ef\u4ee5\u4f7f\u7528LD_LIBRARY_PATH\uff0c\u4f46\u662f\u8bf7\u8bb0\u4e0b\u53e6\u4e00\u79cd\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code># echo \"\/usr\/local\/lib\" &gt; \/etc\/ld.so.conf.d\/usr_local_lib.conf\r\n# ldconfig\r\n<\/code><\/pre>\n<h3>\u6211\u6ca1\u6709\u5b89\u88c5Qt\u88ab\u8d23\u5907\u4e86\u3002\u4e25\u683c\u6765\u8bf4\uff0c\u8fd9\u662f\u5173\u4e8eUbuntu\u7684\u8ba8\u8bba\uff08\u4eceDebian\u5230KVM\u518d\u5230Ubuntu 20.04\uff0c\u5b89\u88c5\u4e86Ubuntu\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>During initialization the error \"\/lib\/x86_64-linux-gnu\/libQt5Core.so.5: version `Qt_5.15' not found (required by \/home\/ubuntu\/.local\/lib\/python3.8\/site-packages\/PyQt5\/QtCore.abi3.so)\" occurred in \/usr(snip)\r\n<\/code><\/pre>\n<p>\u5f53\u53d1\u751f\u9519\u8bef\u65f6\uff0c\u53ef\u4ee5\u91c7\u53d6\u4ee5\u4e0b\u89e3\u51b3\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code>$ pip3 uninstall PyQt5\r\n$ sudo apt-get install python3-pyqt5\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u7528\u8fd9\u4e2a\u65b9\u6cd5\u6765\u89e3\u51b3\u9519\u8bef\u3002<\/p>\n<h1>\u673a\u5668\u5b66\u4e60\u76f8\u5173\u5982\u679c\u8981\u4f7f\u7528venv\uff0c\u9996\u5148\u5b89\u88c5python3-venv\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo apt-get install python3-venv\r\n<\/code><\/pre>\n<h2>\u6253\u5f00\u8ba1\u7b97\u673a\u89c6\u89c9\u5f00\u6e90\u5e93<\/p>\n<pre class=\"post-pre\"><code>$ python3 -m pip install -U opencv-python\r\n$ python3 -m pip install -U opencv-python-headless\r\n$ python3 -m pip install -U opencv-contrib-python\r\n<\/code><\/pre>\n<h3>\u81ea\u5df1\u5efa\u9020\u7684\u60c5\u51b5\u4e0b<\/p>\n<pre class=\"post-pre\"><code>$ wget https:\/\/github.com\/opencv\/opencv.git\r\n$ wget https:\/\/github.com\/opencv\/opencv_contrib.git\r\n$ cd opencv\r\n$ mkdir build\r\n$ cd build\r\n$ cmake -DWITH_CUDA=ON -DWITH_CUFFT=ON -DWITH_CUBLAS=ON -DWITH_NVCUVID=ON -DWITH_TBB=ON -DMKL_WITH_TBB=ON \\\r\n -DOPENCV_EXTRA_MODULES_PATH=..\/opencv_contrib\/modules ..\/\r\n$ make -j N (N = num of cpu core)\r\n<\/code><\/pre>\n<p>\u8981\u4f7f\u7528CUDA\uff0c\u9700\u8981\u5c06CUDA\u76f8\u5173\u53c2\u6570\u8bbe\u7f6e\u4e3a\u5f00\u542f\u72b6\u6001\u3002<\/p>\n<h2>TensorFlow: \u5f20\u91cf\u6d41<\/p>\n<pre class=\"post-pre\"><code>$ python3 -m pip install -U tensorflow-gpu\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u68c0\u67e5\u539f\u7f51\u7ad9\u7684\u7a0b\u5e8f\u6765\u786e\u8ba4GPU\u662f\u5426\u6b63\u5e38\u5de5\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>$ python3\r\n&gt;&gt;&gt; import tensorflow as tf\r\n&gt;&gt;&gt; gpu_available = tf.test.is_gpu_available()\r\n&gt;&gt;&gt; print(\"GPU: \", gpu_available)\r\nGPU:  True\r\n&gt;&gt;&gt; is_cuda_gpu_available = tf.test.is_gpu_available(cuda_only=True)\r\n&gt;&gt;&gt; print(\"CUDA:\", is_cuda_gpu_available)\r\nCUDA: True\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u8fdb\u884c\u4e86Debian 9.4\u7684\u6e05\u6d01\u5b89\u88c5\u3002 \u8fd9\u662f\u6211\u7684\u5907\u5fd8\u5f55\u3002 \u5728Debian 10\u4e0a\u4e5f\u662f\u4e00\u6837\u7684\u3002(\u597d\u50cf\u7ecf\u5e38\u8fdb\u884c\u5b89 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-27240","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6b63\u5728\u5b89\u88c5debian\u64cd\u4f5c\u7cfb\u7edf\u3002-3\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6b63\u5728\u5b89\u88c5debian\u64cd\u4f5c\u7cfb\u7edf\u3002-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-26T22:12:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T17:34:54+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/\",\"name\":\"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-12-26T22:12:30+00:00\",\"dateModified\":\"2025-08-11T17:34:54+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"description\":\"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf - Blog - Silicon Cloud","description":"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6b63\u5728\u5b89\u88c5debian\u64cd\u4f5c\u7cfb\u7edf\u3002-3\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf","og_description":"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6b63\u5728\u5b89\u88c5debian\u64cd\u4f5c\u7cfb\u7edf\u3002-3\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-26T22:12:30+00:00","article_modified_time":"2025-08-11T17:34:54+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/","name":"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-12-26T22:12:30+00:00","dateModified":"2025-08-11T17:34:54+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"description":"\u5173\u4e8e\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6b63\u5728\u5b89\u88c5Debian\u64cd\u4f5c\u7cfb\u7edf"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%ad%a3%e5%9c%a8%e5%ae%89%e8%a3%85debian%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e3%80%82-3\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=27240"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27240\/revisions"}],"predecessor-version":[{"id":111092,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27240\/revisions\/111092"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=27240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=27240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=27240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}