VirtualBox 从物理硬盘启动

1. 基于一个物理硬盘设备,创建一个 virbualbox 的挂载盘

Linux

VBoxManage internalcommands createrawvmdk -filename "xxx.vmdk" -rawdisk /dev/sda

MacOS

VBoxManage internalcommands createrawvmdk -filename "xxx.vmdk" -rawdisk /dev/disk#

Windows

VBoxManage internalcommands createrawvmdk -filename "C:\Users\\VirtualBox VMs\\xxx.vmdk" -rawdisk \.\PhysicalDrive#

2. 创建 virtualbox 虚拟机,设置硬盘为刚刚创建的的挂载盘

使用 Virtual Box 的图形界面,根据物理硬盘中的系统创建虚拟机。到创建硬盘的步骤,点击选择现有虚拟机挂载盘,选择前面创建的 xxx.vmdk 文件

3. 开机测试

Read the rest

git 如何撤销最近一次提交?

有时,在 git 提交后,发现有不应该被包含的文件被包含了,希望撤销到提交之前的状态,重新提交,这时,可以使用:

git reset --soft HEAD~1

执行命令后,上次提交的文件将变成上次 git add 后的状态,并且会丢失上次提交的 commit message,你可以在执行前执行 git log 将 commit message 先拷贝出来。

如果要去掉对几个文件的包含,可以再对这几个文件执行:

git reset HEAD xxxx

如果你并不是要取消对几个文件的引入,而是要在上次基础上再追加几个文件,就不用这么麻烦,把这几个文件 git add 后,执行 git commit --amend 即可。… Read the rest

Install yaml plugin to logstash

In fact, the easiest way to install yaml filter plugin is to run:

sudo -u logstash ./bin/logstash-plugin install logstash-filter-yaml

But because of the network problem, I can’t connect to ruby-gems site, whether I use a proxy or not, the command always shows the warning below:

So I have to build the plugin by myself then install the plugin. If you meet with the same problem with me, you can following the instruction below.

Download the latest release from github: https://github.com/logstash-plugins/logstash-filter-yaml/releases

Copy the link of the zip file, download to your server… Read the rest

CSS秘密花园:磨砂玻璃效果

CSS Secrets》是@Lea Verou最新著作,这本书讲解了有关于CSS中一些小秘密。是一本CSSer值得一读的一本书,经过一段时间的阅读,我、@南北@彦子一起将在W3cplus发布一系列相关的读后感,与大家一起分享。

CSS Secrets

问题

半透明颜色的一种应用是,使用它们作为背景。在照片或者颜色比较复杂的背景下,通过降低对比度,提高文本的可读性。结果非常有效,但是阅读起来仍然不是那么好,特别是非常低透明度的颜色或非常杂乱的背景的情况下。比如说,看看下图效果:

磨砂玻璃效果

其主要元素有一个半透明的白色背景,HTML如下:

<main<blockquote“The only way to get rid of a temptation[…]”
        <footer—
            <citeOscar Wilde,
                The Picture of Dorian Gray
            </cite</footer</blockquote</main

CSS代码如下(不相关的内容就不再赘述):

body {
    background: url("tiger.jpg") 0 / cover fixed;
}
main {
    background: hsla(0,0%,100%,.3);
Read the rest

mongodb 版本升级后数据兼容

mongodb 升级需要在两个相近版本之间进行。如 3.2 无法直接升级到 4.0,需要从 3.2 到 3.4,从 3.4 到 3.6,从 3.6 到 4.0 之间逐个升级。

相邻版本逐个升级,需要多次安装、卸载 mongodb 版本,安装卸载可能需要比较繁琐的操作。所以我推荐使用 docker 挂载数据目录进行升级。

mongodb 典型的数据被配置在 /var/lib/mongodb 目录下。在数据升级前,记得首先备份数据:

cp -R /var/lib/mongodb /tmp/mongdb

安装 docker 的方法可以参考这篇文章:

使用 Docker 安装 mongodb

可以使用下面的命令安装某个版本的 mongodb。可以安装的版本号可以参考 https://github.com/docker-library/mongo 中的几个版本号。

docker pull mongo:3.6.0

mongodb 从 3.4 升级到 3.6

运行如下命令,使用当前已有的数据启动 mongodb 3.4:

docker run -p 27017:27017 -v /var/lib/mongodb:/data/db --rm mongo:3.4.0

开启另一… Read the rest

ubuntu 安装 cuda 支持 GTX 1080ti

安装显卡驱动

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt install nvidia-driver-418

安装后运行 nvidia-smi 可以检测是否安装成功。如果现实 Failed to initialize NVML: Driver/library version mismatch,可以尝试重启计算机。

安装 cuda

下载 cuda 安装包 https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64 。在其中选择 linux ubuntu 使用的版本,下载 .deb(local) 包。

选择安装包后,页面下方会显示安装指导,如:

如果运行 apt-get install cuda 时显示匹配的 nvidia 驱动版本不对,则需要安装指定版本的显卡驱动。… Read the rest

ubuntu 挂载 exfat 分区

在 ubuntu 挂载 exfat 分区时,会出现如下错误:

sudo mount /dev/sdd1 /mnt/u1                                                                                
mount: /mnt/u1: unknown filesystem type 'exfat'.

这时,需要运行以下命令,安装可以让 mount 程序识别 exfat 格式的程序:

sudo apt install exfat-fuse exfat-utils

Read the rest

privoxy 通过 sslocal 提供 http 代理

配置 sslocal 服务

安装 shadowsocks:sudo pip install shadowsocks。运行 shadowsocks 会常出现错误,这时候找到报错对的文件 openssl.py,按下述修复文件。

打开 site-packages/shadowsocks/crypto/openssl.py,将文件中的 cleanup 单词改成 reset。

创建服务脚本 /etc/systemd/system/sslocal.service,内容为:

[Unit]
Description=shadowsocks client

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/anaconda3/bin/sslocal -c /etc/shadowsocks/client.json
Restart=always
WorkingDirectory=/

[Install]
WantedBy=multi-user.target

运行 sudo systemctl start sslocal.service

配置 privoxy 服务

sudo apt install privoxy
echo 'forward-socks5
Read the rest