分类目录归档:技术文献

Git中同步主干的代码到fork分支里

1.指定代码同步的源, 即最新代码库的地址
git remote add upstream http://xxx.xxx.git

2.远程代码提交到本地upstream/master分支
git fetch upstream

3.切换本地master分支
git checkout master

4.把upstream/master合并到本地master
git rebase upstream/master

5.更新本地master到fork的服务器上
git push

使用hdparm命令发送ATA“Secure Erase”指令恢复SSD硬盘的写性能

SSD硬盘随着使用会产生很碎片,随着碎片的增加性能会大大降低。如果硬盘上的数据可以备份到别外,然后就可以用hdparm发送ATA “Secure Erase”指令去清空SSD硬盘中的数据的方法,把硬盘的写性能恢复到没有碎片时的状态。
注意: 这个操作会删除硬盘上所有的数据,而且这些数据不能被恢复。 
注意:如果你不幸碰到了的操作系统内核bugs或SSD硬盘的fireware bugs,可能会硬盘不可写或操作系统crash。
发送 ATA Security Erase指令时需要先给硬盘设置一个密码,当然后面我们再发ATA Security Erase指令后这个密码会被删除掉的。
 
操作步骤:
第一步:
先查看硬盘的状态,X代表sda,sdb,sdc等具体你要操作的硬盘:
hdparm -I /dev/X
主要看输出中的Security部分,如果结果中出现“not frozen”,那么这个硬盘是可以用ATA Security Erase命令去清除硬盘碎片的,
Security: 
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
如果结果是“frozen”的,有可能是主机的BIOS禁止发送ATA Security Erase指令,这需要找到BIOS中打开这个限制。

第二步:设置一个密码

hdparm --user-master u --security-set-pass user123 /dev/X

user123是设置的一个密码.

hdparm --user-master u --security-set-pass user123 /dev/sde

security_password="user123"

/dev/sde:
 Issuing SECURITY_SET_PASS command, password="user123", user=user, mode=high
SECURITY_SET_PASS: Invalid exchange

结果可能是“SECURITY_SET_PASS: Invalid exchange”,但密码也可能是设置上了,可以使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“enabled”:

Security: 
       Master password revision code = 65534
               supported
               enabled
       not     locked
       not     frozen
       not     expired: security count

第三步:执行删除操作

hdparm --user-master u --security-erase user123 /dev/X

hdparm --user-master u --security-erase user123 /dev/sde   

security_password="user123"

/dev/sde:
 Issuing SECURITY_ERASE command, password="user123", user=user
SECURITY_ERASE: Invalid exchange 

然后再检查Security被禁止了:

使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“not enabled”:

Security: 
       Master password revision code = 65534
               supported
       not     enabled
       not     locked
       not     frozen
       not     expired: security count

检测不到NVMe固态硬盘的解决方法

目前Linux系统无法检测到RAID控制器下的单个NVMe固态硬盘(实际未组建RAID),对于想同时安装Windows与Linux双系统用户,在安装Linux系统的时会发现检测不到NVMe固态硬盘。

解决方法是将硬盘控制器类型由RAID改成AHCI,但此操作会导致Windows系统无法启动,如不想重新安装Windows系统可以做如下操作。

步骤一:打开运行(Win键+R键),输入msconfig并按回车键,打"开系统配置"。

步骤二:选择"引导"选项卡,勾选"安全引导"并选择"最小",然后点击"确定"按钮,并按照提示重启系统。

检测不到NVMe固态硬盘

步骤三:进入主板BIOS,然后对硬盘控制器的类型进行修改,将RAID改成AHCI。由于主板品牌较多这里无法一一列举,具体修改方法可以咨询主板厂家或电脑厂家。

硬盘控制器类型修改完成后就可以直接进入Windows系统了,此时为"安全模式"

步骤四:继续打开"系统配置"对话框,做如下图所示的修改,最后按照提示再次重启即可。

检测不到NVMe固态硬盘

命令行进入与退出安全模式的方法:
bcdedit /set {default} safeboot minimal
bcdedit /deletevalue {default} safeboot

转自: https://www.eassos.cn/knowledge/nvme-ssd.php

Linux 分区加密luks和开机自动挂载

如果重新分区需要把分区表的变化信息通知到系统内核(立即生效)
partprobe /dev/sdb

cryptsetup luksFormat /dev/sdb1 加密磁盘
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES 大写YES 接下来输入两次同样的密码。
Enter LUKS passphrase:
Verify passphrase:
Command successful.

cryptsetup luksOpen /dev/sdb1 MyData 解密磁盘,并给予一个别名
mkfs.ext4 /dev/mapper/MyData 格式化
mkdir /MntData 新建目录
mount /dev/mapper/MyData /MntData 挂载使用
umount /dev/mapper/yuhna 卸载
cryptsetup luksClose MyData 关闭加密设备

开机自动挂载

touch /MntData/crytpasswd 新建
cryptsetup luksAddKey /dev/sdb1 /MntData/crytpasswd 添加密钥文件
Enter any passphrase: 输入密码:要输入两次

vim /etc/fstab
dev/mapper/MyData /MntData ext4 defaults 0 0

vim /etc/crypttab
MyData /dev/sdb1 这里可以不加为空
MyData为映射名称,/dev/sdb1是加密设备设备,/MntData/cryptpasswd为密码文件,如果想开机手动输入密码,密码文件处空着即可.最好不要加上让开机输入密码最好。

cryptsetup luksRemoveKey /dev/vda8 移除密码
cryptsetup luksAddKey /dev/vda8 添加密码
cryptsetup luksChangeKey /dev/vda8 修改密码

FFmpeg之ffplay命令使用

一些通用选项

'-L' 显示 license
'-h, -?, -help, --help [arg]' 打印帮助信息;可以指定一个参数 arg ,如果不指定,只打印基本选项
可选的 arg 选项:
'long' 除基本选项外,还将打印高级选项
'full' 打印一个完整的选项列表,包含 encoders, decoders, demuxers, muxers, filters 等的共享以及私有选项
'decoder=decoder_name' 打印名称为 "decoder_name" 的解码器的详细信息
'encoder=encoder_name' 打印名称为 "encoder_name" 的编码器的详细信息
'demuxer=demuxer_name' 打印名称为 "demuxer_name" 的 demuxer 的详细信息
'muxer=muxer_name' 打印名称为 "muxer_name" 的 muxer 的详细信息
'filter=filter_name' 打印名称为 "filter_name" 的过滤器的详细信息
'-version' 显示版本信息
'-formats' 显示有效的格式
'-codecs' 显示 libavcodec 已知的所有编解码器
'-decoders' 显示有效的解码器
'-encoders' 显示有效的编码器
'-bsfs' 显示有效的比特流过滤器
'-protocols' 显示有效的协议
'-filters' 显示 libavfilter 有效的过滤器
'-pix_fmts' 显示有效的像素格式
'-sample_fmts' 显示有效的采样格式
'-layouts' 显示通道名称以及标准通道布局
'-colors' 显示认可的颜色名称
'-hide_banner' 禁止打印欢迎语;也就是禁止默认会显示的版权信息、编译选项以及库版本信息等

一些主要选项

'-x width' 强制以 "width" 宽度显示

'-y height' 强制以 "height" 高度显示

'-an' 禁止音频

'-vn' 禁止视频

'-ss pos' 跳转到指定的位置(秒)

'-t duration' 播放 "duration" 秒音/视频

'-bytes' 按字节跳转

'-nodisp' 禁止图像显示(只输出音频)

'-f fmt' 强制使用 "fmt" 格式

'-window_title title' 设置窗口标题(默认为输入文件名)

'-loop number' 循环播放 "number" 次(0将一直循环)

'-showmode mode' 设置显示模式

可选的 mode :

'0, video' 显示视频

'1, waves' 显示音频波形

'2, rdft' 显示音频频带

默认值为 'video',你可以在播放进行时,按 "w" 键在这几种模式间切换

'-i input_file' 指定输入文件

一些高级选项

'-sync type' 设置主时钟为音频、视频、或者外部。默认为音频。主时钟用来进行音视频同步

'-threads count' 设置线程个数

'-autoexit' 播放完成后自动退出

'-exitonkeydown' 任意键按下时退出

'-exitonmousedown' 任意鼠标按键按下时退出

'-acodec codec_name' 强制指定音频解码器为 "codec_name"

'-vcodec codec_name' 强制指定视频解码器为 "codec_name"

'-scodec codec_name' 强制指定字幕解码器为 "codec_name"

一些快捷键

'q, ESC' 退出

'f' 全屏

'p, SPC' 暂停

'w' 切换显示模式(视频/音频波形/音频频带)

's' 步进到下一帧

'left/right' 快退/快进 10 秒

'down/up' 快退/快进 1 分钟

'page down/page up' 跳转到前一章/下一章(如果没有章节,快退/快进 10 分钟)

'mouse click' 跳转到鼠标点击的位置(根据鼠标在显示窗口点击的位置计算百分比)

作者:航行在蓝天的蚂蚱
来源:CSDN
原文:https://blog.csdn.net/xuyankuanrong/article/details/77529468
版权声明:本文为博主原创文章,转载请附上博文链接!