我的需求是把一个镜像文件写进TF卡。镜像大小3~4G。我在终端下用命令行操作,具体是这样:
sudo dd if=2013-09-25-wheezy-raspbian.img of=/dev/sdx # sdx根据实际情况
现在出现的问题是:写入镜像一开始还正常,写了一会儿之后系统的所有鼠标、键盘、视频播放等所有用户界面的操作全部、完全卡死。系统平均负载飚到10.0以上。
如果拔掉读卡器,则随着写卡失败,系统立刻恢复顺畅运行。
用了以下办法无效:
我记得当初在Windows下写卡的时候,完全可以把写卡程序扔到后台不管,前台该做什么做什么。
我不相信Linux做不到这一点。特上sf求教:如何解决这个问题?
操作系统:openSUSE 13.1 64bit
桌面环境:XFCE
根文件系统:btrfsuname -a
:Linux pc-776.localdomain 3.11.6-4-desktop #1 SMP PREEMPT Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux
TF卡:Sandisk Ultra Class10 8GB,普通读卡器,实测有20MB/s写速度
硬件:H67主板,i3三代CPU,4G DDR3 1333内存,500G普通机械硬盘
PHPz2017-04-17 11:37:43
沒遇過這種情況。在變得很卡的時候(或之前),使用 dstat
和 iotop -o
查看一下,主要是 CPU 和 I/O 部分。另外,使用 dd 記得指定適當的 bs
,例如 bs=10M
。
天蓬老师2017-04-17 11:37:43
@依雲 的提示極為有用,完美的抓到了問題所在,非常感謝!
問題就出在iotop中,無關進程snapperd
高居榜首:
這個進程總是在請求IO,不僅造成了dd崩潰,並且還造成了平時無事可做時硬碟燈也是常亮的。
查了一下,都怪我愛嚐鮮,用了LVM+btrfs這種過於先鋒的檔案系統。而openSUSE如果安裝時用的是btrfs,則會自動啟用snapper軟體。
http://forums.opensuse.org/english/get-technical-help-here/pre-release-beta/491728-13-1-rc2-snapperd-high-i-o-cpu-usage.html
@tosiara Before deciding to try btrfs did you not read any official documentation e.g openSUSE 12.3: Chapter 4. Snapshots/Rollback with Snapper
Yes, I know it's for 12.3. In particular see 4.2 where it states:
If you set up the root partition with Btrfs during the installation, Snapper—pre-configured for doing rollbacks of YaST or zypper changes—will automatically be installed.
這個相當於檔案系統的“月光寶盒”,每小時備份、清理一次檔案系統的snapshot…禁用掉snapper的自動運作(暫時沒敢徹底卸掉)一切都清淨了。
伊谢尔伦2017-04-17 11:37:43
建議試試將IO調度器改為deadline:
echo deadline > /sys/block/sdX/queue/scheduler
可以透過調整IO調度器的方法來稍作改善。