• arch-chroot 之前 modprobe dm-mod,否则 grub-install 可能出现找不到 device.map 的错误。
  • arch-chroot 后在 /etc/default/grub 里面的 GRUB_PRELOAD_MODULES 加入 lvm
  • 修改 /etc/mkinitcpio.conf, MODULES 里面加上 dm-thin-pool , BINARIES 里面加上 “/usr/bin/thin_check /usr/bin/pdata_tools” , HOOKS 的 filesystems 之前加上 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