当前位置: 首页 > news >正文

标智客logo设计免费生成/南京seo代理

标智客logo设计免费生成,南京seo代理,深圳网页设计培训班价格,南昌seo教程SSD (固态硬盘) 作为一种使用 闪存 (flash) 芯片的存储器, 支持 TRIM 命令来优化内部空间管理, 提高性能, 延长寿命. 操作系统的文件系统 (比如 ext4, btrfs) 管理存储器里面存储的文件, 文件系统知道哪些数据块 (block) 已占用, 哪些块是空闲的. 操作系统可以通过发送 TRIM 命…

SSD (固态硬盘) 作为一种使用 闪存 (flash) 芯片的存储器, 支持 TRIM 命令来优化内部空间管理, 提高性能, 延长寿命.

操作系统的文件系统 (比如 ext4, btrfs) 管理存储器里面存储的文件, 文件系统知道哪些数据块 (block) 已占用, 哪些块是空闲的. 操作系统可以通过发送 TRIM 命令, 告诉 SSD 哪些块是空闲的, SSD 的主控就可以在后台回收这些块.

所以, 定期执行 TRIM 是一个好习惯. 然而:

> sudo fstrim -v /
fstrim: /:不支持丢弃操作

?? ?

这什么情况 ? (黑人问号.jpg)

在这里插入图片描述

这是一个 2.5 英寸 SATA SSD, 当使用 SATA 数据线直接连接到主板时, TRIM 功能是正常的. 然而现在使用外置硬盘盒, 通过 USB 连接到主机.

难道, 使用 USB <-> SATA 时, 就不支持 TRIM 了 ? 这么悲吹的嘛 ? 在网上一顿查找资料, 并进行尝试, 最终修复了这个问题, 成功执行了 TRIM.

这里是 穷人小水滴, 专注于 穷人友好型 低成本技术. (本文为 66 号作品. )


相关文章:

  • 《流浪 Linux: 外置 USB SSD 安装 ArchLinux》 https://blog.csdn.net/secext2022/article/details/145413676

参考资料:

  • https://www.jeffgeerling.com/blog/2020/enabling-trim-on-external-ssd-on-raspberry-pi

目录

  • 1 修复过程
    • 1.1 安装所需软件包
    • 1.2 尝试修复 TRIM
    • 1.3 配置 udev 规则
    • 1.4 重启测试
  • 2 总结与展望

1 修复过程

警告 (免责声明): 此操作有可能造成存储设备损坏或数据丢失, 请提前备份重要数据 !!

1.1 安装所需软件包

首先安装所需的软件包:

sudo pacman -S sg3_utils lsscsi usbutils

1.2 尝试修复 TRIM

  • (1) 查看存储设备的 TRIM 功能:

    > lsblk -D
    NAME        DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda                0      512B       0B         0
    ├─sda1           0      512B       0B         0
    ├─sda2           0      512B       0B         0
    └─sda3           0      512B       0B         0
    

    注意此处 DISC-MAX 0B 表示不支持.

  • (2) 获取设备信息:

    > sudo sg_vpd -p bl /dev/sda
    Block limits VPD page (SBC)Write same non-zero (WSNZ): 0Maximum compare and write length: 0 blocks [command not implemented]Optimal transfer length granularity: 0x1Maximum transfer length: 0xffffOptimal transfer length: 0xffffMaximum prefetch length: 0xffffMaximum unmap LBA count: 0x3fffc0Maximum unmap block descriptor count: 0x1Optimal unmap granularity: 0x1Unmap granularity alignment valid: falseMaximum write same length: 0 blocks [not reported]Maximum atomic transfer length: 0 blocks [not reported]Atomic alignment: 0 blocks [unaligned atomic writes permitted]Atomic transfer length granularity: 0 blocks [no granularity requirement]Maximum atomic transfer length with atomic boundary: 0 blocks [not reported]Maximum atomic boundary size: 0 blocks [can only write atomic 1 block]
    

    以及:

    > sudo sg_vpd -p lbpv /dev/sda
    Logical block provisioning VPD page (SBC)LBPU=1LBPWS=0LBPWS10=0LBPRZ=0x0ANC_SUP=0DP=0Minimum percentage: 0 [not reported]Provisioning type: not known or fully provisionedThreshold percentage: 0 [percentages not supported]
    

    注意其中 Maximum unmap LBA count: 0x3fffc0LBPU=1.

    Maximum unmap LBA count 大于 0, 说明看起来是支持 TRIM 的.

  • (3) 设置 unmap (provisioning_mode):

    > sudo find /sys -name provisioning_mode -exec grep -H . {} + | sort
    /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/provisioning_mode:full
    

    注意此处 full, 接下来要把它改成 unmap. 先确认一下设备:

    > sudo lsscsi
    [0:0:0:0]    disk             ASMT   ASM225    0     /dev/sda 
    

    然后进行修改:

    > echo unmap | sudo tee /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/provisioning_mode
    unmap
    

    确认修改结果:

    > sudo find /sys -name provisioning_mode -exec grep -H . {} + | sort
    /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/provisioning_mode:unmap
    
  • (4) 设置 discard_max_bytes:

    > sudo sg_readcap -l /dev/sda
    Read Capacity results:Protection: prot_en=0, p_type=0, p_i_exponent=0Logical block provisioning: lbpme=0, lbprz=0Last LBA=2000409263 (0x773bd2af), Number of logical blocks=2000409264Logical block length=512 bytesLogical blocks per physical block exponent=0Lowest aligned LBA=0
    Hence:Device size: 1024209543168 bytes, 976762.3 MiB, 1024.21 GB
    

    注意此处 Logical block length=512 bytes 以及前面的 Maximum unmap LBA count: 0x3fffc0, 我们来计算一下:

    > node
    Welcome to Node.js v23.8.0.
    Type ".help" for more information.
    > 0x3fffc0 * 512
    2147450880
    > 
    

    然后:

    > echo 2147450880 | sudo tee /sys/block/sda/queue/discard_max_bytes
    2147450880
    
  • (5) 尝试执行 fstrim:

    > lsblk -D
    NAME        DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda                0      512B       2G         0
    ├─sda1           0      512B       2G         0
    ├─sda2           0      512B       2G         0
    └─sda3           0      512B       2G         0
    

    注意其中 DISC-MAX 2G 说明已经开启了 TRIM. 然后:

    > sudo fstrim -v /
    /:874.1 GiB (938609360896 字节) 已修剪
    

    大成功 ! fstrim 正常.

1.3 配置 udev 规则

上面已经成功使用了 TRIM, 但是, 重启系统之后就会失效.

> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0e8d:c616 MediaTek Inc. Wireless_Device
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge

需要配置 udev (创建配置文件):

sudo nano /etc/udev/rules.d/10-trim.rules

内容如下:

ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

注意其中 idVendoridProduct 的具体值要根据上面 lsusb 命令的结果, 对应 SSD 设备.

1.4 重启测试

重启.

> lsblk -D
NAME        DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda                0      512B       4G         0
├─sda1           0      512B       4G         0
├─sda2           0      512B       4G         0
└─sda3           0      512B       4G         0

尝试:

> sudo fstrim -v /
/:874.3 GiB (938724429824 字节) 已修剪

成功 !


定期自动执行 fstrim:

sudo systemctl enable fstrim.timer

好了, 默认每周执行一次 fstrim.

2 总结与展望

SATA SSD 本身支持 TRIM, 如果使用 SATA 数据线直接连接主板就工作正常. 然而使用外置 USB 硬盘盒时, TRIM 就无法使用了.

通过配置 udev 规则, 重新启用 TRIM 功能, 修复了这个问题.

TRIM 可以延长 SSD 的寿命, 是一种很好的技术 !


本文使用 CC-BY-SA 4.0 许可发布.

http://www.whsansanxincailiao.cn/news/31957302.html

相关文章:

  • 网站的建设流程具体有哪些/南宁百度seo排名优化
  • 网站建设及报价/产品软文代写
  • 学做蛋糕网站/2024年新闻摘抄
  • wordpress 4.0-4.6/seo黑帽教学网
  • 做景观私活的网站/关键词首页优化
  • 望牛墩仿做网站/常见的营销策略有哪些
  • 大型做网站/百度指数官网登录
  • 网站建设从哪入手/网络推广软文怎么写
  • 动态网页设计网站建设/自媒体引流推广
  • 大厂做网站/关键词推广seo怎么优化
  • 济南专门做网站的公司/seo是指什么意思
  • 吉安市建设局施工管理站网站/百度推广后台管理
  • 合肥做微网站/seo价格查询公司
  • 建网站难吗/如何搭建个人网站
  • 网站备案期间 搜索引擎/网站服务器搭建
  • 百度怎么自己做网站/百度一下你就知道官网网页
  • 十里河网站建设公司/百度平台商家
  • 重庆网站建设培训班/百度提交网站的入口地址
  • 山东机关建设网站/怎么在百度上发帖推广
  • 香港外贸网站建设/简单的html网页制作
  • redis做缓存的网站并发数/不收费的小说网站排名
  • 计算机科学专业就业方向/北京seo网络推广
  • 电子商务网站保密协议/客户管理软件
  • 宁波如何建网站/百度收录提交工具
  • 色系网站/沧州网站建设
  • 老外做的汉语网站/中国突然宣布一重磅消息
  • 查询网站备案进度/黄页网络的推广网站有哪些类型
  • 做网站需要的参考文献/cnzz数据统计
  • 专门做学校政府的网站/厦门网站建设平台
  • 成都市城乡建设委员会的网站/营销策划运营培训机构