• arch-chroot 之前 modprobe dm-mod,否则 grub-install 可能出现找不到 device.map 的错误。
  • arch-chroot 后在 /etc/default/grub 里面的 GRUB_PRELOAD_MODULES 加入 lvm
  • 修改 /etc/mkinitcpio.conf, MODULES 里面加上 dm-thin-poolBINARIES 里面加上 “/usr/bin/thin_check /usr/bin/pdata_tools” , HOOKSfilesystems 之前加上 lvm2。 执行 mkinitcpio -p linux 重新生成。
  • grub-mkconfig -o /boot/grub/grub.cfg 生成 grub 配置。

最近自己拿 j1900 组装了台 nas 期间出了各种问题,原先使用的是 btrfs 文件系统,可是后来因为经常奇怪的死机导致 btrfs 文件系统出错,里面的文件丢失好多,就想着换回 ext4 可又放不下 snapshot 功能,在网上找替代方案,发现 lvm 支持 thin provisioning 可以实现类似的功能,然后就直接重装,上 lvm

省略在 lvm 上面安装 archlinux 的一系列步骤,安装完毕开始调教 lvm

Read More

最近买了一块七彩虹C.Q1900M主板做为 nas 代替以前使用的 cubieboard ,本来想着买过来直接装 debian 系统,然后就可以愉快的使用了。结果昨天到的机子,到今天晚上才把系统给装上,中间出了各种问题。

刚开始是碰到在 3T 的新硬盘上安装 debian 后无法启动的问题,貌似是因为 grub-efi 没安装成功。然后尝试换了 ubuntu server 14.04.3 安装到是一路顺利,就是碰到一个严重的问题,关机的时候会卡死,无法关闭电源,也无法重启机器,只能强制关机,调试了半天的 acpi ,还是没搞定。就在要准备换一个发行版的时候发现原来使用 ubuntu desktop 14.04.2 的 live 模式可以正常关机,顿时觉得有戏啊。然后就一路 happy 的安装完成了。

可是

事情还没有结束,在安装了一堆东西,并升级了内核后,又无法关机了。怀疑是内核的问题,重新使用 14.04.2 自带的 3.16 能正常的关机。重新将系统恢复到 3.16 的内核后,一切又正常了。j1900这破平台,兼容性问题看来挺大了,据说还无法安装 esxi。不过还好,找到问题是内核的就简单了,不升级内核就好,反正3.16也可以使用 docker 。

2016-02-03补充

在换成 archlinux 后高版本内核依然无法正常关机,有时正常,有时又不正常,后来查到将 xhci 控制器关掉改用 echi 就可以正常关机,但这样就无法使用 USB3.0 了,不过平时用 USB3.0 的情况也不多,关系不大。

angularjs 中因为直接制作dom或着其它原因会导致 ngModel 的双向绑定不同步,这时就需要手动处理一下。

直接操作 dom 后使用下面的代码设置 ngModel 的值。

1
2
var inputElem = angular.element(d);
inputElem.data().$ngModelController.$setViewValue(inputElem.val());

其中 d 就是 element,当在 $scope 之外操作的时候还需要使用一下 $scope.$apply();

打开终端输入下面的命令

hdiutil create -srcfolder node_modules node_modules.dmg

其中 node_modules 是文件夹 node_modules.dmg 是打包出来的 dmg 文件。

想要顺带加密的使用下面的命令

echo -n 'password'|hdiutil create -stdinpass -encryption -srcfolder node_modules node.dmg

其中 password 是密码

参数说明

-i

输入文件,可以多个

-vf

滤镜,可以用 -vf “ass=[ass字幕文件]” 来加载

使用FFmpeg给视频增加黑边需要用到 pad 这个滤镜,具体用法如下:

-vf pad=1280:720:0:93:black

按照从左到右的顺序依次为“宽”、“高”、“X坐标”和“Y坐标”,宽和高指的是输入视频尺寸(包含加黑边的尺寸),XY指的是视频所在位置。

比如一个输入视频尺寸是1280x534的源,想要加上黑边变成1280x720,那么用上边的语法可以实现,93是这样得来的,(720-534)/2。

如果视频原始1920x800的话,完整的语法应该是:

-vf ‘scale=1280:534,pad=1280:720:0:93:black’

先将视频缩小到1280x534,然后在加入黑边变成1280x720,将1280x534的视频放置在x=0,y=93的地方,FFmpeg会自动在上下增加93像素的黑边。

注:black可以不写,默认是黑色。

-vf ‘crop=1920:1080:0:0’

这个是用来裁剪视频大小的,比如录像1080i出来成1088像素,底下有8个黑的像素就可以用这命令去掉。

Read More

今天在使用svg-sprite-loader生成svg symbol的时候发现同事给的svg文件有点问题,生成出来svg文件里面有重复的样式名,导致各个图标的颜色不正常。

1
2
3
4
5
6
7
8
9
10
11
<style type="text/css">
<![CDATA[
.fil1 {fill:#A0D9F6;fill-rule:nonzero}
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
.fil0 {fill:#0A80DF;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="图层_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<path class="fil0" d="M2500 0c-1381,0 -2500,1119 -2500,2500 0,1381 1119,2500 2500,2500 1381,0 2500,-1119 2500,-2500 0,-1381 -1119,-2500 -2500,-2500z"/>

Read More

我在家里使用一块 cubieboard 一代的板子挂载一块 1.5T 的硬盘来做备份工作,由于使用的是 macbook pro ,所以配置成了 Time Capsule,但有一个分题,我使用的文件系统是 Btrfs ,由于版本比较老,不好限制单个子卷的大小,这样 TimeMachine 的备份慢慢的会占慢整个硬盘,所以需要限制一下,必竟这块硬盘还有很多其它的用途。

尝试了网上找到的一些方法,都不能实现,后来想制作一个 qcow2 镜像挂载出来,然后做为 Time Capsule,可惜的是 cubieboard 上面安装的这个 ubuntu 不带 nbd 模块,无法通过 qemu-nbd 来挂载 qcow2 镜像,后来想起来可以直接使用 raw 镜像,建立的时候直接使用稀疏文件就行。

先建立一个稀疏文件:

1
dd if=/dev/zero of=TimeCapsule.img bs=1 count=1 seek=1000000000

然后用 mount 命令挂载到目录:

1
mount -o loop /mnt/bak1.5T/block/TimeCapsule.img /mnt/bak1.5T/TimeCapsule

再通过 netatalk 将这个挂载的目录设置成 TimeCapsule 就可以了。

在 osx 下的时候默认 emacs 使用的是 utf8 编码,想在目录中搜索 gbk 编码的内容需要转换一下 emacs 的编码,然后再搜索,原理跟 vim 的那个差不多。

首先按 C-x C-m c 把编码切换成 gbk ,然后再用 M-x ag 搜索,这时输入中文就可以正常搜索 gbk 的内容了。

Gulp 是用 nodejs 写的一个前端构建工具,我现在主要拿来自动编译 coffee、less 以及压缩图片、同步文件、清理多余文件等工作。 gulp 使用 stream 方式处理内容,主要使用的几个办置方法如下:

  1. gulp.src: 来源
  2. gulp.dest: 目标
  3. gulp.pipe: 管道
  4. gulp.watch: 监视文件系统,文件改动时自动处理
  5. gulp.task: 任务

安装

首先需要在系统里面安装全局的 gulp 命令。

1
sudo npm install -g gulp

然后在项目的根目录下新建 package.json 文件。

1
npm init .

安装 gulp 包。

1
npm install gulp --save-dev

Read More