Linux下恢复误删除的文件

经常有时候喜欢删除文件...但是之后又后悔删除... Linux 下 rm 之后是没有回收站的.
于是我便寻找恢复文件的相关资料.

# TestDisk

TestDisk 是用来帮助恢复丢失的分区和使无法启动的启动盘再次启动.
使用 TestDisk 之前别忘了备份分区表.

# 备份分区表

# sfdisk -d /dev/sda > /tmp/sda.bak
1

# 恢复分区表

# sfdisk /dev/sda < /tmp/sda.bak
1

官方教程:TestDisk Step By Step (opens new window)

# PhotoRec

PhotoRec 是用来恢复丢失的文件和照片.即使重新格式化或严重损坏的文件系统都可以恢复. 但是 PhotoRec 只有全盘扫描和空闲分区扫描.耗时很长.对于自己无意中删除的小文件来说就是 杀鸡焉用牛刀.没有这个必要.

# Extundelete

Extundelete 设计的就是用来从 ext3 或 ext4 的分区恢复最近被删除的文件.它可以从一个相对路径恢复 被删除的文件,非常实用.但是只有当分区被卸载才可以使用.

# 恢复被删除的文件

# extundelete --restore-file tux/cv.tex /dev/sda4
1

# 恢复被删除的文件目录

# extundelete --restore-directory tux/Documents/tex/ /dev/sda4
1

Arch wiki:File recovery (opens new window)

Archlinux下声卡的设置与折腾

最近又有瞎折腾装 Arch....发现显卡驱动的安装和设置都不是问题... 声卡却老是出现奇怪的问题,便把最近折腾的经验写下来吧~

# 切换默认声卡

发现最近的新本子基本上声卡设备都不止一个,个人猜测应该是 HDMI 音频输出和 本机主板上的音频输出吧.可以使用 aplay -l 命令显示所有声卡设备. 我机器的输出是:

[acgotaku@Archlinux ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC3220 Analog [ALC3220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
1
2
3
4
5
6
7
8

第一个一般为默认的声卡输出设备,显然 HDMI 输出是不对的,导致声音无法正常播放,我们应该把默认声卡切换为 第二个.最简单易用的方法是在用户根目录下新建一个 .asoundrc 文件.输入以下内容:

defaults.pcm.card 1
defaults.pcm.device 0
defaults.ctl.card 1
1
2
3

上面的数据可以从声卡设备输出中找到,这样就切换到 card 1 的 device 0 设备了.不过切换之后可能发现还是没有 声音,因为 alsa 默认是静音的需要手动解除才行. 这就需要去官方源安装 alsamixer 工具. alsa-utils (opens new window) 我自己安装的 alsamixer 使用界面是:

alsamixer

默认 Master 竖条下方显示的不是 00 而是 MM,表示是静音的,按下 m 键解除静音.

# 耳机有持续的杂音的解决方案

有些情况下即使安装好 alsa 解除静音了,但仍然发现戴耳机的时候没有任何软件发声的时候会有持续的杂音,但是音乐播放器一旦放音乐的时候杂音又消失了. 这个问题的原因是 alsa 默认设置 Mic 声道是静音的,我们只需要解除 Mic 声道的静音并调节至合适的值即可.

# 恢复默认的 alsa 设置

有些时候自己胡乱设置导致 alsa 无法正常工作的时候可以通过使用 alsactl restore 命令使 alsa 恢复到默认的配置一般都能正常工作了.

Archlinux折腾笔记

四月也算过去了一大半了,经过了一个月的奔波与折腾,总算安顿好自己了.在学校本地找了一个还算不错的实习. 阴差阳错的选择了 Web 开发工程师的职位,其实我最想做的是后端开发,前端也还是比较喜欢的.但是我有个很大的 缺点就是不会设计... 不会设计的前端开发工程师很鸡肋的,每次网站开发都是同学出设计图我来做的.这样不行的, 我必须能独当一面才算能在公司站得住脚.

近况就是这些,接下来就是记录下自己在 Archlinux 下折腾的东西.方便自己以后查询使用.

# Linux 下视频截图制作动态 GIF

观看视频遇到经典的镜头当然得录下来做成 GIF~ 首先需要安装 imagemagick 这个软件包才行

mplayer -vo png -ss 00:08:28 -frames 200 123.mp4
mogrify -resize 848x480 *.png
convert -delay 4  *.png ry.gif
1
2
3

第一句话是利用 mplayer 输出 png 格式图片,从 8 分 28 秒开始,截图 200 帧,也可以换成

mplayer -vo png:z=1 -ss 00:08:28 -endpos 8  123.mp4
1

这样就是截取 8 秒,png 后面的 z=1 是压缩比例从 0 到 9 压缩程度递增,压缩速度也递增. 第二行便是修改尺寸,毕竟 720p 的 GIF 实在是吃不消啊.然后第三行变把这些 png 生成 GIF 了.

# sudo 设置环境变量

有时候程序需要使用 root 权限,但当我使用 sudo 的时候结果发现这时候程序又使用 root 用户的配置文件了.
现在的需求就是程序使用 root 权限运行但是执行时候读取 HOME 变量还是当前用户.
Run_X11_apps_using_sudo (opens new window) wiki 上有清楚的讲解这样的解决办法.