作者: 027导航

  • Linux和Window之间轻松转换重装系统脚本

    有时候,可能因为种种原因需要更换VPS的系统,而商家提供的系统很有限,亦或者商家提供的系统装了很多平时我们不需要的软件,这时我们就需要一个纯净的、可定义的系统了,那么,本篇文章将利用dd来给大家演示怎么进行VPS系统的重装。

    dd命令的解释

    dd命令是Linux下用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换的一个命令。通过dd命令,我们可以将指定文件覆盖到指定位置,包括启动引导和内核等,这正是dd安装系统的核心。注意,此方法仅限于初始系统为Linux系统

    开始之前的一些条件配置

    为了顺利的进行,需要安装一些必要的软件,需在root用户下进行,如不在,请切换到root或者使用sudo

    ##Debian/Ubuntu系统
    apt-get update
    apt-get install -y xz-utils openssl gawk file wget screen
    ##RedHat/Centos系统
    yum update
    yum install -y glibc-common xz openssl gawk file glibc-common wget screen

    进入到screen模式,防止因连接、网络原因中断:

    screen -S DD

    适用于由GRUB引导的CentOS,Ubuntu,Debian等系统。

    一、MoeClub版

    1.下载及说明

    wget --no-check-certificate -qO InstallNET.sh https://moeclub.org/attachment/LinuzShell/InstallNET.sh && chmod a+InstallNET.sh

    Usage:

    bash InstallNET.sh -d/--debian [dist-name]
                       -u/--ubuntu [dist-name]
                       -c/--centos [dist-version]
                       -v/--ver [32/i386|64/amd64]
                       --ip-addr/--ip-gate/--ip-mask
                       -apt/-yum/--mirror
                       -dd/--image
                       -a/-m
    # dist-name: 发行版本代号
    # dist-version: 发行版本号
    # -apt/-yum/--mirror : 使用定义镜像
    # -a/-m : 询问是否能进入VNC自行操作. -a 为不提示(一般用于全自动安装), -m 为提示

    2.使用方法

    用默认镜像全自动安装
    bash InstallNET.sh -8 -64 -a
    #使用自定义镜像全自动安装
    bash InstallNET.sh -6.10 -64 ---mirror http://mirror.centos.org/centos
    # 以下示例中,将X.X.X.X替换为自己的网络参数.
    # --ip-addr :IP Address/IP地址
    # --ip-gate :Gateway /网关
    # --ip-mask :Netmask /子网掩码
    #使用自定义镜像全自动安装
    #bash InstallNET.sh -u 9 -v 64 -a --mirror http://mirrors.ustc.edu.cn/debian/
    #使用自定义镜像自定义网络参数全自动安装
    #bash InstallNET.sh -u 16.04 -v 64 -a --ip-addr x.x.x.x --ip-gate x.x.x.x --mirror http://archive.ubuntu.com/ubuntu
    #使用自定义网络参数全自动dd方式安装
    #bash InstallNET.sh --ip-addr x.x.X.X --ip-gate x.X.X.X --ip-mask x.x.x.x -dd https : / /moeclub.org/onedrive/IMAGE/Windows/win7emb_x86.tar.gz
    #使用自定义网络参数全自动dd方式安装存储在谷歌网盘中的镜像(调用文件ID的方式)
    #bash InstallNET.sh --ip-addr x.x.X.X --ip-gate x.x.X.X --ip-mask x.x.x.x -dd "https : / / image.moeclub.org/GoogleDrive/1cqVl2wSGx92UTdhoxU9pW3wJgmvZMT_J
    #国内推荐使用USTC源
    #――mirror http: / /mirrors.ustc.edu.cn / debian/ 

    3.可用镜像地址

    # 推荐使用带有 /GoogleDrive/ 链接, 速度更快.
    # 当然也可以使用自己GoogleDrive中储存的镜像,使用方式:
     https://image.moeclub.org/GoogleDrive/
    # win7emb_x86.tar.gz:
     https://image.moeclub.org/GoogleDrive/1srhylymTjYS-Ky8uLw4R6LCWfAo1F3s7
     https://moeclub.org/onedrive/IMAGE/Windows/win7emb_x86.tar.gz
    # win8.1emb_x64.tar.gz:
     https://image.moeclub.org/GoogleDrive/1cqVl2wSGx92UTdhOxU9pW3wJgmvZMT_J
     https://moeclub.org/onedrive/IMAGE/Windows/win8.1emb_x64.tar.gz
    # win10ltsc_x64.tar.gz:
     https://image.moeclub.org/GoogleDrive/1OVA3t-ZI2arkM4E4gKvofcBN9aoVdneh
     https://moeclub.org/onedrive/IMAGE/Windows/win10ltsc_x64.tar.gz

    4.说明

    ①.全自动安装默认root密码: MoeClub.org,安装完成后请立即更改密码

    ②.远程登陆账号为: Administrator ,远程登陆密码为: Vicer

    ③.建议通过加参数 -p 密码 的方式自定义密码

    二、Meowlove版

    1.使用方法

    ### 下载脚本

    wget --no-check-certificate -qO ~/Network-Reinstall-System-Modify.sh
    
    https://github.com/MeowLove/Network-Reinstall-system-Modify/raw/master/Network-Reinstall-system-Modify.sh & & chmod a+~/Network-Reinstall-System-Modify.sh

    ### 两种方案

    #### 安装裸机系统部署平台
    #### 仅适用于高端用户,手动安装任意系统。可通过网络 ISO 或 iPXE 安装任意系统。
    bash ~/Network-Reinstall-System-Modify.sh -CXT_Bare-metal_System_Deployment_Platform
    #### 安装DD系统
    #### 如果您不了解这意味着什么,请不要进行操作。%ULR%应该替换为您自己的映像地址。
    bash ~/Network-Reinstall-System-Modify.sh -DD "%ULR%"

    通用解决方案

    一键网络重装纯净CentOS 7(推荐)
    bash ~/Network-Reinstall-System-Modify.sh -CentOS_7
    一键网络重装纯净Debian 9(推荐)
    bash ~/Network-Reinstall-System-Modify.sh -Debian_9
    一键网络重装纯净Ubuntu 18.04(推荐)
    bash ~/Network-Reinstall-System-Modify.sh -Ubuntu_18.04
    一键网络重装纯净Windows Server 2019(推荐)
    bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2019

    2.说明

    ①注意:重复重装此系统前,在主机上面板重装一次系统,在一些主机商上安装的成功率似乎并不是很高。

    ②如果安装成功无法联网,vnc手动修改为静态ip:vi /etc/sysconfig/networkscripts/ifcfg-eth0 ,修改之后保存并重启:

    BOOTPROTO=static #dhcp改为static
    IPADDR=192.168.1.100 #静态IP
    GATEWAY=192.168.1.255 #默认网关
    NETMASK=255.255.255.0 #子网掩码

    ③默认系统账号:Administrator 默认系统密码:cxthhhhh.com 默认远程端口:3389

    三、Teddysun 版

    1.使用方法

    wget -q0 DebianNET.sh qiu.sh/dd a& bash DebianNET.sh -dd "DD download URL"
    ###后面跟的是dd包直链地址

    2.镜像地址

    https://delivery.yuntu.moe/teddysun/cn_windows2019.gz
    https://delivery.yuntu.moe/teddysun/en_windows2019.gz
    https://delivery.yuntu.moe/teddysun/ja_windows2019.gz
    https://delivery.yuntu.moe/teddysun/cn_windows2016.gz
    https://delivery.yuntu.moe/teddysun/en_windows2016.gz
    https://delivery.yuntu.moe/teddysun/ja_windows2016.gz
    https://delivery.yuntu.moe/teddysun/cn_windows2012r2.gz
    https://delivery.yuntu.moe/teddysun/en_windows2012r2.gz
    https://delivery.yuntu.moe/teddysun/ja_windows2012r2.gz

    3.说明

    远程桌面的默认用户名为administrator ,密码为Password147

    四、汇总版

    集合了Linux和WIN包,Linux版本包括CentOS6-7、Ubuntu 14 16 18、Debian 7-10,Windows系统集合了萌咖大佬、老司机、MeowLove等人的系统,包含win7 2003 2006 2012 2008 2016 2019等,同时也支持自定义。

    使用方法

    ##镜像文件在OneDrive
    wget ---no-check-certificate https://raw.githubusercontent.com/veip007/dd/master/dd-od.sh && chmod +x dd-od.sh && ./dd-od.sh
    ##镜像文件在GoogleDrive
    wget ---no-check-certificate https://raw.githubusercontent.com/veip007/dd/master/dd-gd.sh && chmod +x dd-gd.sh && ./dd-gd.sh

    码:MoeClub.org或cxthhhhh.com

    Windows to Linux的系统重装教程

    1. 把下面的命令保存为win32loader.bat后执行即可:
    @ECHO OFF&@PUSHD %~DP0 &TITLE Win32Loader
    setlocal enabledelayedexpansion
    ::Author MoeClub.org
    color 87
    cd.>%windir%\GetAdmin
    if exist %windir%\GetAdmin (del //"%windir%\GetAdmin") else (
    echo CreateObject^("Shell.Application"^).ShellExecute "%~s0", "%*", "", "runas", 1 >> "%temp%\Admin.vbs"
    "%temp%\Admin.vbs"
    del //"%temp%\Admin.vbs"
    exit /2)
    cls
    echo * Init Win32Loader.
    set download=0
    set try_download=1
    set URL=https://moeclub.org/attachment/WindowsSoftware
    :InitCheck
    mkdir "%SystemDrive%\win32-loader" >NUL 2>NUL
    if exist "%SystemDrive%\Windows\System32\WindowsPowerShell" (
    set use_ps=1
    ) else (
    set use_ps=0
    echo Not found PowerShell.
    )
    :Init
    if %use_ps% equ 1 (
    goto InitIt
    ) else (
    goto InitFail
    )
    :InitIt
    set try_download=0
    call:DownloadFile "!URL!/g2ldr/g2ldr","%SystemDrive%\g2ldr"
    call:DownloadFile "!URL!/g2ldr/g2ldr.mbr","%SystemDrive%\g2ldr.mbr"
    call:DownloadFile "!URL!/g2ldr/grub.cfg","%SystemDrive%\win32-loader\grub.cfg"
    goto InitDone
    :InitFail
    echo.
    echo Go to "!URL!/g2ldr",
    echo Please download them by yourself.
    echo %SystemDrive%\g2ldr
    echo %SystemDrive%\g2ldr.mbr
    echo %SystemDrive%\win32-loader\grub.cfg
    echo Press [ENTER] when you finished.
    pause >NUL 2>NUL
    goto InitDone
    :InitDone
    if !try_download! equ 0 (
    set InitOption=InitFail
    ) else (
    set InitOption=Init
    )
    if not exist "%SystemDrive%\g2ldr" goto !InitOption!
    if not exist "%SystemDrive%\g2ldr.mbr" goto !InitOption!
    if not exist "%SystemDrive%\win32-loader\grub.cfg" goto !InitOption!
    :Image
    echo.
    echo * Please select initrd mode.
    echo [1] Online download
    echo [2] Local file
    choice //12 /Select:
    if errorlevel 2 goto LocalMode
    if errorlevel 1 goto OnlineMode
    goto Image
    :OnlineMode
    echo.
    echo * Please select source.
    echo [1] by MoeClub [Linux](Debian8, DHCP or VNC Support)
    echo [2] by MoeClub [Windows](Win7EMB, DHCP or VNC Support)
    echo [3] by MoeClub [Windows](Win8.1EMB, DHCP or VNC Support)
    echo [4] by yourself
    choice //1234 /Select:
    if errorlevel 4 goto Yourself
    if errorlevel 3 goto MoeClub_Win8.1EMB
    if errorlevel 2 goto MoeClub_Win7EMB
    if errorlevel 1 goto MoeClub
    goto OnlineMode
    :Yourself
    echo.
    echo if initrd.img URL is https://moeclub.org/onedrive/IMAGE/Loader/DebianJessie/initrd.img, 
    echo Please input https://moeclub.org/onedrive/IMAGE/Loader/DebianJessie.
    set /p IMG_URL_TMP=URL :
    if defined IMG_URL_TMP (
    set IMG_URL=%IMG_URL_TMP%
    goto Download
    ) else (
    goto MoeClub
    )
    :MoeClub_Win8.1EMB
    set IMG_URL=https://moeclub.org/onedrive/IMAGE/Loader/Win8.1EMB
    set INITRD_SHA1=473617320316CCB5A88EDE72CBA6AF501B148071
    set VMLINUZ_SHA1=C84BF89869868B0325F56F1C0E62604A83B9443F
    goto Download
    :MoeClub_Win7EMB
    set IMG_URL=https://moeclub.org/onedrive/IMAGE/Loader/Win7EMB
    set INITRD_SHA1=C1BF2A50802BC23A7EC7373AB4CB8F5A905D5860
    set VMLINUZ_SHA1=C84BF89869868B0325F56F1C0E62604A83B9443F
    goto Download
    :MoeClub
    set IMG_URL=https://moeclub.org/onedrive/IMAGE/Loader/DebianJessie
    set INITRD_SHA1=934CFCD5DC855F360AE72AFCB8E6276FABFBCDD5
    set VMLINUZ_SHA1=C84BF89869868B0325F56F1C0E62604A83B9443F
    goto Download
    :Download
    if %use_ps% equ 1 (
    echo.
    echo Downloading initrd.img...
    call:DownloadFile "!IMG_URL!/initrd.img","%SystemDrive%\win32-loader\initrd.img"
    call:CheckFile "%SystemDrive%\win32-loader\initrd.img"
    call:CheckSUM "%SystemDrive%\win32-loader\initrd.img","%INITRD_SHA1%"
    echo Downloading vmlinuz...
    call:DownloadFile "!IMG_URL!/vmlinuz","%SystemDrive%\win32-loader\vmlinuz"
    call:CheckFile "%SystemDrive%\win32-loader\vmlinuz"
    call:CheckSUM "%SystemDrive%\win32-loader\vmlinuz","%VMLINUZ_SHA1%"
    set download=1
    ) else (
    echo Not support online download, auto change Local initrd.
    goto LocalMode
    )
    :LocalMode
    if !download! equ 0 (
    echo.
    echo Please put initrd.img and vmlinuz to %SystemDrive%\win32-loader .
    echo Press [ENTER] when you finished.
    pause >NUL 2>NUL
    )
    :Done0
    set download=0
    if exist "%SystemDrive%\win32-loader\initrd.img" (
    goto Done1
    ) else (
    echo Not found %SystemDrive%\win32-loader\initrd.img .
    goto LocalMode
    )
    :Done1
    set download=0
    if exist "%SystemDrive%\win32-loader\vmlinuz" (
    goto Done
    ) else (
    echo Not found %SystemDrive%\win32-loader\vmlinuz .
    goto LocalMode
    )
    :Done
    echo.
    echo Press [ENTER] to continue...
    echo IT WILL REBOOT IMMEDIATELY
    pause >NUL 2>NUL
    echo.
    call:CheckFile "%SystemDrive%\g2ldr"
    call:CheckFile "%SystemDrive%\g2ldr.mbr"
    call:CheckFile "%SystemDrive%\win32-loader\grub.cfg"
    call:CheckFile "%SystemDrive%\win32-loader\initrd.img"
    call:CheckFile "%SystemDrive%\win32-loader\vmlinuz"
    call:CheckSUM "%SystemDrive%\g2ldr","2FCB1009A64C127AD3CC39FF0B5E068B38CBA772"
    call:CheckSUM "%SystemDrive%\g2ldr.mbr","29401C8BC951F0AEFD30DC370A3797D1055D64B4"
    call:CheckSUM "%SystemDrive%\win32-loader\grub.cfg","58C499EFEE7E60790B3FE2166B536C04B6717B14"
    set id={01234567-89ab-cdef-fedc-ba9876543210}
    bcdedit /create %id% /d "Debian GUN/Linux" /application bootsector >NUL 2>NUL
    bcdedit /set %id% device partition=%SystemDrive% >NUL 2>NUL
    bcdedit /set %id% path \g2ldr.mbr >NUL 2>NUL
    bcdedit /displayorder %id% /addlast >NUL 2>NUL
    bcdedit /bootsequence %id% /addfirst >NUL 2>NUL
    shutdown -r -t 0
    :CheckSUM
    for /f "delims=: tokens=2" %%i in (powershell.exe "& {Get-FileHash -Algorithm SHA1 -Path %1|Format-List -Property HASH}") do (set tmp_var=%%i)
    set var=%tmp_var:~1%
    if "%var%" == %2 (
    echo Check %1 SHA1 OK.
    ) else (
    if "%var%" == "CommandNotFoundException" (
    echo Check %1 SHA1 SKIP.
    ) else (
    echo Check %1 SHA1 FAIL.
    call:ErrorExit
    )
    )
    GOTO:EOF
    :CheckFile
    if not exist %1 (
    echo Not found %1 .
    call:ErrorExit
    )
    GOTO:EOF
    :DownloadFile
    powershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile(%1,%2)}" >NUL 2>NUL
    GOTO:EOF
    :ErrorExit
    echo. 
    echo Error, Clear CACHE...
    del /S /F /Q "%SystemDrive%\g2ldr" >NUL 2>NUL
    del /S /F /Q "%SystemDrive%\g2ldr.mbr" >NUL 2>NUL
    rd /S /Q "%SystemDrive%\win32-loader" >NUL 2>NUL
    echo Press [ENTER] to exit.
    pause >NUL 2>NUL
    exit 1
    GOTO:EOF

    管理员身份打开命令提示符,执行

    slmgr /skms kms.03k.org #也可以更换为其它的 KMS 激活服务器。
    slmgr /ato
    slmgr /xpr
  • Drupal,Joomla,WordPre 对比

    在使用CMS开发网站时,Drupal,Joomla,Wordpress三大主流CMS的选择常常让人很困惑。

    这三个CMS具有一些共性和特性,在Google上搜索会找到很多介绍这三个CMS的文章和比较。根据自己的亲身体验,总结一些经验与大家分享。

    首先表明自己的观点,本人不认为哪一个CMS是最好的,哪一个其次,对于专业开发人员来说,不管是CMS,语言,IDE都只是完成工作的工具,技术从业人员都应该会接触和掌握到类似工具中的几种,手上的工具要使用在合适的地方,不应该只认定一种工具用在所有地方,打个比方来说,一个木匠不可能只用斧子做完所有的工作,也不可能在工作中完全不用到斧子。做什么工作就要挑选什么样的工具,多了解几种工具会让你在工作中能够挑选最合适的,熟练掌握这些工具能够让你的工作事半功倍。

    进入正题

     

    drupal/joomla/wordpress

    共性:

    *PHP语言

    *免费开源

    *内容发布系统

    特性:

    drupal:程序设计思路有别于大多数CMS,免费模块多,很多常用功能需要自己选择安装模块来实现,中文资料较少,由于其核心设计的特性,扩展灵活,但上手难度大。

    适用:有自己的开发小组或团队,团队中有前端支持,项目要求有很高的扩展性,未来的需求暂时不明了。

    不适用:无开发团队,非IT企业建企业网站,自学门槛高,周期长,如果本身不是靠开发为业,花太长的时间去学习而只使用一次是很不划算的。

     

    joomla:设计思路比较传统,容易理解,容易使用,容易安装,模块多,主题多并且很美观,但是很多好看好用的主题和模块都是收费的,中文资料多,核心灵活性与drupal相比稍差(但是一般网站的需求完全足够)

    适用:快速搭建网站,网站的需求比较明了常见,有一定的预备投入资金。

    不使用:以开发为业的企业或人员,joomla越来越成熟,商业化,势必会让在搭建网站这件事情上越来越简单,简单到不需要专业开发人员也可以完 成。而且,joomla已有的商业模块购买的价格比起让开发人员开发自己开发同样的模块肯定是低许多的。所以joomla不适合开发团队长期使用。

     

    wordpress:最初设计思路就是blog模式,非常容易安装和使用,现成的主题也很美观,二次开发也较简单,但是由于核心设计的局限,扩展到复杂的网站功能需要非常多的代码量,而同样的功能也许在drupal和joomla中已经由现成的模块了。

    适用:有无开发团队均可,搭建个人网站,个人blog,小企业网站,展示型网站。

    不适用:复杂的网站开发,虽然经过二次开发也可以做得很丰富,但是会脱离wordpress提供的功能,最后变成wordpress更象只是整套程序中的一个模块而已。

     

    总结:drupal说是CMS,其实更接近一个通用的Web应用程序框架,通过扩展开发可以实现几乎所有的网站需求,甚至超越网站的需求。但是需要投入开发人员。适合小团队使用,以应对各种外包网站项目。

    joomla很成熟,虽然本身是开源免费,但是其模块和主题已经很商业化,使用这些商业模板和主题可以满足绝大部分企业网站或者电子商务网站的需求,适合大部分企业用户或非技术团队使用,快速搭建网站。

    wordpress轻巧简约,能够满足常见的内容发布功能,搭建blog,展示型网站很敏捷,适合个人网站开发或者简单需求的企业网站。

    以我的经历为例,我是一名开发人员,团队有7位开发人员,其中两名前端,开发的项目以定制的web应用为主,所以我会选择drupal;偶尔会有一些小型的企业网站项目,这时我也会选择使用wordpress;另外我也有一些在其他企业做技术维护的朋友(非开发人员),当他们的老板要求做一个企业网站时我会推荐他们使用joomla。

    当然,也有热衷其中之一的技术fans,认为可以用其中一种完成所有事情,例如用wordpress做电子商务网站或者其他更高级的功能,这是可以的,但是如果自己开发的部分远大于cms带来的便利的部分,那么使用cms的意义就不大了,对吧,毕竟我们选择cms是为了节省大部分的时间而只需要花小部分的精力去做开发,既然使用cms,那就得选择一款适合的,别让工具变成负担。

  • 要被 NTFS 逼疯了!

    这里是没有解决方案的!

    最开始的时候是在知乎上看到了一篇讲一个加密木马 (名字忘记了) 的文章,木马会在后台默默保护你的文档,就是不告诉你密钥罢了。木马在 Windows 下和 OS X 下都有,想要回你的文档只能乖乖交钱咯。看到这里,吓得我抓紧摸摸口袋,买了块 2T 的移动硬盘做 Time Machine 备份,预防万一,免得哪天中木马或者硬盘坏了或者不小心被抹掉什么的至少还能找到地方哭ಥ_ಥ。

    事情进展的很顺利,狗东的硬盘很快交到我手上, 想了想,就分了 750G 给 Time Machine,750G 格成 HFS+,剩下的就留给 NTFS 了,毕竟有时候还是要用一用 Windows 本的。

    所以这些跟标题有什么关系呢?急什么,我都点题了!

    好了,分好区以后自然就是欢天喜地的做备份啦。这里顺便扯一句,第一次做 Time Machine 会很慢,慢到生活不能自理,甚至怀疑人生怀疑硬盘是不是 被狗东玩坏的。不过,通常来讲狗东是无辜的,请拔掉电源以提升速度,没错,拔掉电源,世界瞬间通畅了→_→,啊,再扯一句,我做的是加密备份,不清楚非加密备份是什么情况,还有,备份完后,如果连接着电源并且插着移动硬盘,Time Machine 会对整块硬盘做加密,但是可以随时终止的,只要拔掉电源就可以了。所以估计之前接着电源的时候是加密和备份一起做的,所以,究竟是一次拉完还是分开多次拉就看你自己的选择了。

    好了。

    话说之前好像提到硬盘分了三个区,因为要跨系统使用,所以除了 TM 盘,其他两个格式都不一样。HFS+ 就不说了,重点是这个 NTFS 啊ಥ_ಥ

    首先说说为什么不选 exFat 吧,exFat 原本应该是最佳选择的,不仅 Windows (XP 要装补丁) 支持,OS X 甚至 Linux 也都是可以支持的,但其是仅适合闪存使用 1,机械盘就不适合了。而且这货是个不稳定因素啊,首先这货是没有日志系统的,意味着文件一旦丢失就再也找不回来了。知乎关于 exFat 的答案里一堆丢过文件的,甚至还有丢失分区表的。。。这尼玛我还敢用?对待丢失文件这种问题上我向来是十分谨慎的。。。

    好吧,在 OS X 上用 NTFS 简直就是 shi 一样的体验(其实你用的时候还好吧,主要是被吓的吧),首先,系统默认是只读的,要想写的话,倒是有好几种选择,有好几个软件都可以:

    • Paragon NTFS for Mac
    • NTFS for Mac
    • Tuxera NTFS for Mac
    • ….

    或者网上还有很多教程可以开启系统对 NTFS 的写权限,但这些东西基本都是要付费的就不说了(身在天朝呵呵呵),最重要的是稳定性堪忧啊,网上好多什么同一块移动硬盘下的 HFS 分区突然挂载成只读啦,什么文件损坏啦,甚至还有整块分区内容丢失的情况,吓得我生活不能自理,肯定是不敢尝试了。开启系统对 NTFS 的写权限这种方法也是褒贬不一,好在还有一种方法,是我非常信任的,就是用 Windows 去读写 NTFS ,原生的总是让人放心的。所以我尝试了 Parallels Desktop 虚拟机。这个稍后再说,毕竟这么简单就搞定也不至于有标题了。

    还有就是在 Windows 上读取 HFS ,软件有 Mac Drive 等等,这种我以前玩黑苹果的时候就用上了,感觉还是不错的。这个我倒是也能接受,但别人就不一定了。每台 Windows 上都要安装驱动,我自己的电脑还好说,别人的呢?还有万一一不小心忘了说了,某不靠谱朋友直接拿去插到电脑上,一看一个盘都没有,然后直接给我格了我找谁哭去。再有找不到支持 Windows 10 上的 XX 版(喂!),我才不要为了一个月甚至几个月都有可能不用到的东西付费呢。。再有别人也不会让你随便在他电脑上乱装软件。

    好了,到这里是不是感觉解决方案很多嘛,但是感觉一个都不靠谱啊!

    本来移动硬盘就是买来做备份的,结果用着用着东西没了?!

    恩,最后说一下用虚拟机的解决方案吧,我本子上装的是 Parallels Desktop,可以说是 OS X 上体验最好的虚拟机软件的了。在虚拟机配置页面的共享菜单里,可以选择要映射的盘符。

     

    要被 NTFS 逼疯了!

    [Gbuy id=18636]

     

    然后其他人就可以舒服的用 PD 来读写 NTFS 盘了。是的!别人可以!我不行ಥ_ಥ!

    不知道是不是因为 EL Capitan ,总之,我映射到虚拟机里的盘符文件系统是 PrlSF,累似下图这样,应该是将 OS X 下的分区直接映射过来了,所有对其的文件操作其实还都是在 OS X 下进行,所以 OS X 下不支持的话这里自然也不会支持了。可是为什么我记得以前是可以的呢?明明不是这样的。。。

     

    要被 NTFS 逼疯了!

    [Gbuy id=18637]

     

    心酸。。。

    然后就又找到了下面这种方法。。。虽然我更想让上面那种方法可用ಥ_ಥ

    这种方法就是将移动硬盘作为一块硬盘加入到虚拟机的硬件配置里。结局是可以用的,但就跟直接插到 Windows 上一样,HFS + 这种分区是肯定不会被识别的。。。所以就一个孤零零的 NTFS 盘。。。

    方法如下:

    • 打开虚拟机配置页面,选择硬件,点击 + 号,选择硬盘。

       

      要被 NTFS 逼疯了!

      [Gbuy id=18638] 

       

      要被 NTFS 逼疯了!

      [Gbuy id=18639] 

    • 类型选择 Boot Camp,位置选择你的移动硬盘

       

      要被 NTFS 逼疯了!

      [Gbuy id=18640] 

    • 点击确定,然后启动虚拟机就可以了。
    • 在启动虚拟机之前请先在 OS X 下移除移动硬盘。

       

      要被 NTFS 逼疯了!

      [Gbuy id=18641] 

    • 不过,忘记说了一个最大的缺点。。。
    • 如果你没有接上移动硬盘就启动虚拟机的话那么虚拟机是打不开的!!!!

       

      要被 NTFS 逼疯了!

      [Gbuy id=18642] 

    天啦噜,我觉得还是直接装个软件好了.

  • 树莓派4B(Debian10 arm64)安装宝塔面板填坑记录

    0x01 前言

    网上说树莓派安装宝塔会出现各种不兼容,这个还没有完整测试,不过我的树莓派上宝塔面板只装了Nginx,目前运行良好,可以肯定的是,宝塔面板肯定是可以在Debian Arm64上运行的。

    环境说明:

    • 树莓派型号:4B 4G (已支持arm64位)
    • 操作系统:树莓派 Debian lite版,在清华镜像站可以下载到64位的
    • 宝塔面板:7.5.1正式版

    下面开始,请确保在开始之前安装好洁净的操作系统。

    0x02 安装依赖

    这部分依赖是实际操作安装宝塔失败时的报错,都是因为安装python依赖报的错误

    错误关键词1:pycurl

    安装过程第一次报错是出现pycurl安装失败的时候,这里日志找不到了就不贴了,这里放一下解决方案,安装下面的依赖即可。

    1
    sudo apt-get install libcurl4-openssl-dev

    错误关键词2:src/pycurl.h:202:13: fatal error: gnutls/gnutls.h: No such file or directory

    错误信息如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ERROR: Command errored out with exit status 1:
       command: /www/server/panel/pyenv/bin/python3.7 -u -c import sys, setuptools, tokenize; sys.argv[0] = ""/tmp/pip-install-b_xmihxk/pycurl_a546559ebae949f49a83669004bbef1a/setup.py""; __file__=""/tmp/pip-install-b_xmihxk/pycurl_a546559ebae949f49a83669004bbef1a/setup.py"";f=getattr(tokenize, ""open"", open)(__file__);code=f.read().replace(""\r\n"", ""\n"");f.close();exec(compile(code, __file__, ""exec"")) bdist_wheel -d /tmp/pip-wheel-yze0ppob
           cwd: /tmp/pip-install-b_xmihxk/pycurl_a546559ebae949f49a83669004bbef1a/
      Complete output (20 lines):
      Using curl-config (libcurl 7.64.0)
      Using SSL library: GnuTLS
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-3.7
      creating build/lib.linux-aarch64-3.7/curl
      copying python/curl/__init__.py -> build/lib.linux-aarch64-3.7/curl
      running build_ext
      building pycurl extension
      creating build/temp.linux-aarch64-3.7
      creating build/temp.linux-aarch64-3.7/src
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPYCURL_VERSION="7.43.0.6" -DHAVE_CURL_SSL=1 -DHAVE_CURL_GNUTLS=1 -DHAVE_CURL_SSL=1 -I/www/server/panel/pyenv/include/python3.7m -c src/docstrings.c -o build/temp.linux-aarch64-3.7/src/docstrings.o
      In file included from src/docstrings.c:4:
      src/pycurl.h:202:13: fatal error: gnutls/gnutls.h: No such file or directory
       #   include <gnutls/gnutls.h>
                   ^~~~~~~~~~~~~~~~~
      compilation terminated.
      error: command gcc failed with exit status 1
      ----------------------------------------
      ERROR: Failed building wheel for pycurl

    大概意思就是没有gnutls库,安一下就好了,下面两个库可以都安装

    1
    2
    sudo apt-get install libgnutls28-dev
    sudo apt install libcurl4-gnutls-dev

    建议先安装上面的三个依赖再开始安装宝塔

    0x03 安装宝塔

    Debian版安装命令:

    1
    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

    出现安装成功提示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ==================================================================
    Congratulations! Installed successfully!
    ==================================================================
    外网面板地址: http://xxxx:8888/c23632ac
    内网面板地址: http://xxxx:8888/c23632ac
    username: xxxx
    password: xxxx
    If you cannot access the panel,
    release the following panel port [8888] in the security group
    若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
    ==================================================================

    0x04 后话

    树莓派的编译能力是真的差,cpu还是没法和pc机比。

    附清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/raspbian-images

  • Window 10动态磁贴的过去与未来

    如果说Vista/Win7的令人惊艳的Aero动效是微软拟物化的巅峰,那么微软紧接着推出的Win8/WP带来的现代设计无疑是180度转向的另一个巅峰。丰富的色彩搭配,灵动的动画特效,前所未有的大胆革新,清新简约的扁平化,无法想象这是一个“古老”的科技公司——前两年刚推出高度拟物化的Win7系统的微软设计的。

    作为Win8/WP的核心元素,动态磁贴的设计无疑是最亮眼的功能。笔者认为,磁贴设计是微软将图标与通知内容相结合的大胆而酷炫的尝试,但逐渐暴露出信息承载量小的局限性。

    一、动态磁贴的诞生与创新

    微软设计磁贴的初衷是突破传统图标仅仅作为快捷方式的低效性,如果我们回到Win7,获取程序信息必须点开图标进入程序内部,但大多数时候,人们并不是想查阅软件里的所有内容,而只关心更新了哪些消息,动态磁贴就是将应用通知最新信息与图标相结合,提供了一种更加高效信息查阅方式,人们无需打开应用就能看到自己关注的最新信息,之后根据自身需要,再点进应用了解更详细的内容。

    值得注意的是,动态磁贴还融入角标、信息来源(联系人及头像)、信息文字与图片附件等非常详尽的内容,而这些Android与iOS系统的通知中心直到近几年才依次跟进。

    磁贴设计还是微软迎合移动与触摸潮流的结果,触摸屏的手机与平板的快速普及坚定了微软变革的决心。大方块相比传统不规则小图标更易选择与触摸,矩形的设计也易于磁贴的大小缩放、移动摆放与任意组合。而在手机这样的小屏幕中,在移动互联网兴起的初期,相比其他系统满屏的小图标,磁贴同时显示图片与文字通知,无疑高效而炫酷。

    动态磁贴的设计思路是与扁平化设计一脉相承的,Win8以来微软转向了Metro设计风格(后改为Modern现代设计风格),整体风格都是纯色直角矩形的组合,正如Metro的字面意思“地铁”,设计灵感就源自于地铁站内各种白色简约的引导标志符号。

    随着互联网的快速普及,信息量极大增加,写实繁杂的高光、阴影、渐变、纹理开始成为视觉累赘,同时用户对数码功能已经驾轻就熟,扁平化设计便成为大势所趋,删减一切不必要的装饰性视觉元素,而将信息本身变成完全的视觉主体,将用户的注意力完全集中到信息本身。因此,原本复杂纹理的彩色图标变为纯色色块+白色抽象图标。随着微软率先转向扁平化,谷歌与苹果也对所有系统设计风格进行了大刀阔斧的改变。

    理想的磁贴设计是不同磁贴参差切换显示通知图片与文字信息,矩形磁贴组合就会变成类似瀑布流的无缝图片组合,视觉冲击力非常强,而且Win8系统还大量使用惊艳的色彩搭配与灵动流畅的动画特效,呈现出非常炫酷的视觉效果。

    二、动态磁贴的局限性

    然而,磁贴虽然炫酷,却承载不了过多的信息量,这也是其目前最大的局限性。

    由于种种原因,Win8应用以及Win10 UWP计划都没有取得明显成效,完美支持动态磁贴的应用很少,导致了磁贴设计的噩梦——满屏幕的静止图标,这比Android和iOS的满屏幕多彩图标更为可怕,不仅低效,还遮挡壁纸。而且Win8中磁贴还有特定的颜色来区分不同应用,Win10改为透明的主题色图标后,满屏的白色图标自然难以辨识不同的应用,开始菜单的使用效率更低了。

    不过,即使Win10开发者踊跃开发,每个应用都有了动态磁贴,磁贴设计就完美了吗?

    事实上,随着互联网的进一步发展,个人信息量与日俱增,而Win8推出的动态磁贴已经难以全面、有效、有序呈现所有信息。磁贴适合信息量增长初期通知量小而丰富的情景,而如今像社交应用如果一次收到十几、几十条信息,动态磁贴如何全部呈现?一些新闻应用人们又怎么可能盯着磁贴、慢慢等磁贴刷新下一条新闻来寻找自己感兴趣的资讯?琳琅满目不断切换的动态磁贴是否会让人遗漏重要通知?如何知晓同一应用的不同通知、不同应用通知的时间先后?错过的通知又该如何查看?这些问题随着未来互联网的不断发展只会越来越凸显。

    微软显然也意识到了这个问题,从效率的角度看,动态磁贴已经难以胜任当下的信息通知需求,带有时间轴的集中所有通知的通知中心便成为必需。借助通知中心,所有通知一览无余,不像动态磁贴不断切换容易遗漏。所有通知按时间纵向排列,像社交软件的聊天信息即使很多也可以有序地直接读取。微软在WP以及PC端都加入了通知中心,就是为了解决这些痛点,PC端的通知中心还整合PC端原有系统与应用的通知,来解决长久以来不同系统通知、不同应用通知形态不一的混乱局面,可以说通知中心是对磁贴的必要补充与Windows系统的重大改进。

    此时磁贴设计无疑陷入了一种尴尬局面:通知中心越来越重要、强大,现在还支持显示头像与图片,甚至可交互,而传统的动态磁贴的通知功能因为低效而逐渐边缘化,那磁贴还有什么意义呢?难道只剩下独特而炫酷的视觉冲击了?

    三、可交互式动态磁贴

    不少网友或多或少都听说过“爆裂式磁贴”吧?其实大家口口相传的爆裂磁贴可不是一厢情愿的想象,早在Win8时代,微软研究院的人机交互团队已经做出了可交互式动态磁贴(Interactive live tiles),大家可搜索Interactive live tiles on Windows Next by Microsoft Research查阅相关视频。

    微软对动态磁贴的期望可不只是快捷方式与通知显示,磁贴还应当是可交互的。从视频截图中可以看出,可交互的动态磁贴右下角有个下拉按钮,点击即为磁贴拓展形态。“桌面”磁贴能显示时间、日期与最近打开程序,“邮件”磁贴能显示邮件内容列表,“天气”磁贴能显示未来多日的详细天气情况,“人脉”磁贴能显示按字母排列的联系人列表并选择,“音乐”磁贴能显示播放、暂停、进度条等控件以及曲目列表,“计算器”磁贴则直接可以计算了。是不是感觉与苹果如今的3D Touch如出一辙?事实上,微软当年的研究成果比苹果的3D Touch更为丰富和成熟。

    微软研究院另一个相关视频揭露了可交互动态磁贴的更多功能,“OneDrive”的磁贴不仅能显示文件列表,还能以多任务窗口的模式将文件直接拖拽到其他应用中。而“人脉”的磁贴不仅能快速回复、发布动态,还能作为跨设备工作的媒介。

    然而,可交互动态磁贴并没有出现在人们期待的Win8.2中,后来的Win10将改进的侧重点放在Win8全屏界面的窗口化,来方便大多数的传统键鼠用户,为触控而生的交互式磁贴至今也未出现在Win10后续版本中。最近外媒甚至传言微软将直接“砍掉”动态磁贴,作为一名Windows的用户真的感到万分遗憾。

    四、动态磁贴的未来展望

    放眼未来,磁贴设计单纯作为应用通知的载体肯定是无力了,笔者认为如果动态磁贴继续存在,可能会以三种形式存在。

    第一种就是可交互式动态磁贴,使磁贴与应用功能进一步融合,将快捷组件、快捷指令、快捷入口集成到图标的扩展状态。这一点,苹果的3D Touch与快捷指令(捷径)目前走在了更前面,苹果系统的小插件主流还是作为快捷入口,随着接口的增加,我们看到了很多应用开发出可直接交互的日历、计算器、翻译、搜索等功能,捷径更是将大量复杂的操作整合为自动化流程,提高了操作效率,进一步拓展了移动端工作的可能性。

    第二种则是文件或项目组的快捷入口。这一点可参考Win10的任务视图与时间轴,这样磁贴便有了最近打开文件以及(未来可期的)Sets项目组的全新形式。

    该设计在侧边栏保留动态磁贴选项的同时,尝试设计开始菜单新形态。基于开始菜单是系统快捷入口的初心,该设计侧重于工作流程,将最近打开的程序、文件、Sets直接置于开始菜单,不失为一种实用而美观的探索。该设计的最大启示是强调Recent,最近,如果将最近程序与其相应文件相互融合,作为便捷入口置于开始菜单,也可以作为磁贴的新形态。

    除此以外,笔者认为还有一种可能。

    上图为微软推出的Power BI,数据可视化的商务智能应用。当然,并不是说它和动态磁贴是替代关系,而是说它展现了磁贴相比图标的一项绝对优势:动态呈现更多的有效信息。随着通知信息的极速膨胀,人们对信息展示的偏好是否也会从海量的充实感回归简约高效呢?或许,浩如烟海、狂轰滥炸的通知条们将先一步退出历史的舞台,未来的人工智能与机器学习,将帮助用户筛选、整理、呈现出更加个性化、实质、有效的信息。

    磁贴的第三种可能,就是显示即时状态的职能。类似现在的天气磁贴,人们不用进入应用即可知晓实时的天气状态,像今日日程及完成情况也可以动态更新,还有股票指数、运动量与能量消耗指标、血压心跳等健康指标等等,都可以通过图表或数字的形式直接呈现在磁贴上,而如果这些信息的更新一条一条地通知推送,那就令人不胜其烦了。所以说,磁贴依旧有着推送通知不可替代的巨大优势,这一点在大数据与量化普及的大背景下,在个人生活、企业管理、学术研究等各领域都有着广阔前景。

    当然,作为状态的磁贴,不只有专业的图表数据,例如音乐、视频磁贴可以直接显示上次播放的进度,游戏也可以展示关卡进度与道具数量等等。总之,磁贴从诞生之日起就注定不再是简单的图标,而是应用内容的一部分了。仅仅充当通知功能的传统磁贴会被淘汰,磁贴可能将借助人工智能与大数据重生。

    未来,拭目以待。

  • crcpy – Android无需ROOT的跨平台投屏工具

    之前有提到Vysor,但是这个插件免费版的码率比较低,如果要高清的就要付费。
    现在推荐一个Genymotion推出的投屏工具,跨平台,自定义码率,最重要的是开源,简直良心。

    Github:https://github.com/Genymobile/scrcpy
    下载地址:https://github.com/Genymobile/scrcpy/releases

    效果图
    gif录制较模糊,实际使用很清晰
    ————————————————

    设备要求
    Android 5.0以上

    检查ADB
    在命令行里打adb,如果有反应就说明已经有ADB,如果提示command not found就说明没有安装ADB

    如果没有ADB需要先安装ADB
    Windows
    Mac OS
    Linux

    安装scrcpy
    Windows
    scrcpy-win32-v1.8.zip
    scrcpy-win64-v1.8.zip
    Mac OS
    可以通过Homebrew直接安装

    brew install scrcpy
    1
    Linux
    Arch Linux

    scrcpy
    scrcpy-prebuiltserver
    其它版本的Linux需要手动构建
    手动构建文档

    打开USB调试
    在 开发人员选项 打开 USB调试,USB连接手机

  • 官方源更新特别慢 给DeepinUOS更换系统镜像源提高速度

    自带的deeping官方的软件包源,很不好用,卡顿严重,速度还慢,所以准备替换它。

    发现在设置中的指定镜像又不能生效,怀疑是应用商店的镜像源。所以只能动手修改/etc/apt/sources.list文件

    修改为华为云的镜像

    sudo vim /etc/apt/sources.list

    替换成以下,就是把网址替换一下http://packages.deepin.com

    ## Generated by deepin-installer
    deb https://mirrors.huaweicloud.com/deepin/ unstable main contrib non-free 
    deb-src https://mirrors.huaweicloud.com/deepin/ unstable main contrib non-free

    保存后,更新一下缓存

    sudo apt update

    感觉这个方法太麻烦还可以试试这个

    echo -e "deb https://mirrors.huaweicloud.com/deepin/ unstable main contrib non-free \ndeb-src https://mirrors.huaweicloud.com/deepin/ unstable main contrib non-free" | sudo tee /etc/apt/sources.list

    替换后速度嗖嗖的上去了,原来官方的镜像只有几百K的速度,实在受不鸟

    国内deepin源

    中科大

    http://mirrors.ustc.edu.cn/deepin/

    华为云

    https://mirrors.huaweicloud.com/deepin/

    阿里云

    https://mirrors.aliyun.com/deepin/

    网易云

    http://mirrors.163.com/deepin/

    清华大学

    https://mirrors.tuna.tsinghua.edu.cn/deepin/

    大家按自己需求换镜像源,替换上面的网址就可以啦。就是这么简单???

  • U盘中的文件格式全部变为exe文件格式是怎么回事?要怎么解决?

    U盘中的文件格式全部变为exe文件格式是怎么回事?许多小伙伴经常会将自己的U盘在一些公共场合中随意的使用,导致最终U盘中了病毒,而这种情况就是因为电脑中病毒引起的,下面小编就带着大家一起来看一下如何解决这个问题吧!

      操作方法:

    1、新建一个记事本文件,在记事本中输入。

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_ MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]“CheckedValue“=dword:00000001

      2、将新建文本的文件后缀改为.reg。

      3、双击打开reg文件。

      4、然后新建第二个文本文件,在文件中输入。

    for /f ”delims=“ %%i in (‘dir /ah /s/b’) do attrib ”%%i“ -s -h

      5、将此文件保存重命名为文件名.bat。

      6、将bat文件复制到U盘目录中,直接双击运行文件,U盘中隐藏的文件会全部出现,电脑会弹出重命名窗口,使用鼠标点击窗口中是按钮,使用文件粉碎工具添加隐藏文件,点击窗口中的立即粉碎按钮可以粉碎文件。

      以上便是U盘中的文件格式都变成了.exe的解决方法,希望能帮到大家。

  • Hyper-V Linux VM如何选择LIS Linux集成服务

     Hyper-V 中运行 Linux guest VM,要获得最好的使用体验,必需针对你所使用的 Linux 发行版和使用场景选择 Linux Integration Services(LIS,Linux 集成服务)。要想在 Hyper-V 中获得「最佳」Linux 使用体验会比较微妙,下面我们将详细进行介绍,以帮助大家根据自身情况作出最正确的选择。

    开始我们先请大家注意的是:微软通过两个独立的通道向用户交付 LIS。这两个交付通道彼此独立,所以你必需先确定哪个将会通道最适合你。

    Linux发行版内置的LIS

    首先各大 Linux 发行厂商,例如 Red Hat、SUSE、Oracle、Canonical 和 Debian 社区等是 Linux Integration Services(LIS)最为直接的交付方式。微软和 Linux 社区开发人员会将大的 LIS 更新提交到 Linux 内核邮件列表,并从 Linux 社区收集代码审查和反馈意见。当反馈过程完成后,更改便会被纳入上游由 Linus Torvalds 和 Linux 社区「维护者」负责的 Linux 内核。当验收合格后,Linux 发行厂商会将 Linux 内核移植到自己的发行版本当中,并由该发行商将 LIS 作为其产品的一部分进行构建和测试。测试完成后,微软将得到产品的早期版本并将自己的测试结果返回给发行商。目前 Red Hat、SUSE、Canonical 和 Oracle 等公司都与微软保持着这样的合作流程,所涉及的产品包括 RHEL、CentOS、SLES、Oracle Linux 和 Ubuntu。当然,Debian 社区也与微软保持同样的合作。

    这条 LIS 发行通道被微软称为「内置」,即你从 Linux 发行商那里获取到产品时就已经内置了 LIS。例如,当你从 CentOS 7.0 升级到 7.1 后就会获得 CentOS 7.1更新的 LIS。需要注意的是,微软并没对内置式 LIS 指定版本号,用户什么时候能获得 LIS 更新完全取决于发行厂商何时从上游拉取并更新 Linux 内核。此种「内置」方式唯一不足之处就是用户可能无法及时获取到最新 LIS 更新及新特性,但 Linux 厂商与微软之间的联合测试能够保尽可能证 Linux 系统在 Hyper-V 环境下的使用稳定。对内置 LIS 的技术支持完全取决于最终用户与 Linux 发行商之间的支持协议和条款,微软的直接客户可以按 Hyper-V 的支持协议条款获取到微软官方的技术支持。在以上两种情况下,LIS 代码级 Bug 会由微软与 Linux 发行商配合搞定,并通过 Linux 发行商的更新代码或补丁方式进行修复。

    微软LIS独立安装包

    Linux Integration Services 另一条交付通道便是微软为最终用户直接提供的 LIS 安装包,该种方式想必很多微软方向的工程师都不陌生,此种方式适用于 RHEL、CentOS 等采用 Red Hat 内核和兼容 Oracle Linux 的发行版。随着 Azure 的不断更新以及对 Windows Server 2016 新版 Hyper-V 的支持,独立 LIS 也保持了一定的更新频度和速度。独立 LIS 安装包的出现让用户可以及时更新,不必等待 Linux 厂商的官方更新便可获得 LIS 功能与性能提升。微软独立安装包目前最新为 LIS 4.1 和 LIS 4.0 版本,大家可以自行下载安装。

    需要重点注意的是,使用独立 LIS 版本必需要有特定版本的 Linux 内核与之匹配。例如在使用 LIS 独立包的情况下,系统由 CentOS 7.0 更新到 7.1 后 LIS 包并不会更新,需要单独对 LIS 进行升级。如果你只更新 Linux 内核或大版本而不升级 LIS,可能造成 Linux 内核中的二进度不匹配,严重可能导致系统无法启动。微软会按 Hyper-V 支持条款对使用独立 LIS 包的 Linux 用户提供官方技术支持,如果你使用老版本,微软会在技术支持时要求升级到最新 LIS 版本观察问题是否存在。由于 LIS 主要是运行于 Linux 内核级的驱动,所以微软只提供版本更新,不太可能提供修复补丁。

    下面就 Hyper-V Linux VM 该如何选择 Linux Integration Services 列出一个表格,仅供大家参考:

  • (2020年最新方法)如何快速迁移网站?使用宝塔一键迁移转移网站数据详细教程

    选择一个好的服务器提供商真的很重要,特别忌讳那种国内个人的服务商,买了几台服务器,分割一下就敢拿出来卖。
    正常情况其实也没事,就怕个人卖家实力有限,维护不好服务器,然后就经常宕机,还会经常搞出各种幺蛾子。

    我最近就遇到了这个麻烦,有一天,服务器提供商突然和我说服务器数据要迁移,更换服务器,以下是原话:

    香港cn2和美国圣何塞因机房合作商被查,近期需要下线,以免警方断网。已开通的用户提交工单,开通同配置的香港cn2gia机型

     

    我顿时心里一地的草泥马,你一句换服务器说的简单,我网站的数据咋办,不都得一个个迁移啊。
    关键是什么,服务器的备份资料下载还贼慢,正常都是100k/s,我一个G的备份数据可能就要下载一天,而且还有可能中途断掉,就得重新再来。

    但没办法,人家说要换,咱们也没辙啊,该换就换吧。
    但是下载数据再上传就很麻烦,于是就在寻找一种替代方案,能快速迁移以前网站的数据到一台新的服务器的办法。

    果然还是宝塔好,一搜发现它就自带一键迁移网站数据的小工具。那还说什么,开始搞起来吧。
    原理其实还是老一套:打包旧的数据,传到新的服务器上。

    关键词说明:

    发送数据服务器:当前需要进行数据迁移的服务器,其他名称:迁出服务器。
    接收数据服务器:当前用于接收数据的服务器,其他名称:迁入服务器。
    API秘钥:面板提供的外部调用接口。
    API秘钥IP白名单:用于授权指定IP使用面板API秘钥。

    先总结下思路

    首先要给新的服务器安装上和旧服务器一样的宝塔环境,包括php版本、mysql版本,这样能避免网站数据出错。
    网站数据一定要提前备份,防止出现其他问题可以方便恢复。
    然后在发送数据服务器上安装一键迁移工具,填写接收数据服务器信息,包括秘钥,就可以开始自动迁移了。

    操作步骤

    1.
    直接在宝塔面板的软件商店搜索一键迁移,即可找到宝塔一键迁移API版本,点击安装即可。
    (可以看到工具说明上标明:快速迁移面板数据,此版本仅在迁出机器(发送数据端)安装即可)

    2.
    接收数据服务器上,点击面板设置,开启API,获得接口秘钥
    并将发送数据端IP加入接收数据服务器API的IP白名单
    点击保存即可。

    3.
    发送数据服务器上,找到我们刚刚下载的宝塔一键迁移API版本,填写面板地址和API秘钥。
    注意:面板地址和API秘钥都是接收数据服务器、接收数据服务器、接收数据服务器上的,千万别填错了。
    面板地址包含 协议 + 主机IP地址 + 面板端口
    例如:http://192.168.0.1:8888

    没问题的话开始系统检测,没提示就直接下一步,有错误会提示缺啥,你安装下就可以。

    然后会让你选择要迁移的网站和数据库。按照要求打钩即可。

    然后就可以等待它自动迁移完成了。

    4.
    迁移完成后,网站文件和数据库就都已经到新的网站了,这个时候域名再重新解析到新的网站就可以正常访问了。