笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
dd 整盘克隆到更小盘,翻车一整天的记录
给一台 240G 的老机器换 120G 的固态盘,系统实际只用了 35G 左右,想着 dd 一把梭把整盘克隆过去,结果翻车翻了一下午,记个完整过程当反面教材。
源盘是 /dev/sda(240G),目标盘 /dev/sdb(120G),两边都确认过数据量远小于目标容量,于是执行了:
dd if=/dev/sda of=/dev/sdb bs=4M status=progress
跑了一阵之后 dd 报错退出:
dd: error writing '/dev/sdb': No space left on device
这是第一个认知错误:dd 整盘克隆是逐字节把整个块设备的内容搬过去,源盘 240G,哪怕只用了 35G,它也会一直拷贝到源盘末尾,目标盘只有 120G,到一半就写不下了。dd 不懂文件系统,它不知道哪些块是空的。
报错之后目标盘处于一个很尴尬的状态:前面 120G 的内容是源盘前一半的镜像,但分区表是源盘的 GPT,里面记录的末尾可用扇区是按 240G 算的。这时候把 sdb 接上去,fdisk/parted 会报:
Error: The backup GPT table is not at the end of the disk, as it should be.
GPT 分区表在磁盘开头和结尾各有一份,结尾那份现在落在超出 120G 的位置上,读不到了。系统启动时按开头的主 GPT 去解析,但因为备份 GPT 丢失,很多工具会拒绝操作或者要求修复。
修复备份 GPT 可以用 sgdisk:
sgdisk -e /dev/sdb
-e 参数把备份 GPT 重新写到磁盘末尾。跑完 parted /dev/sdb print 就能正常读出分区了。
但坑还没完:分区表里每个分区的起止扇区是按 240G 盘的布局记的,sdb 上后面的分区起点可能已经超出 120G,即使 GPT 结构修好了,那些分区在内核里看到的实际大小会被截断到磁盘末尾,文件系统跟分区大小对不上,mount 的时候会报错,fsck 也会抱怨 superblock 里的块数量超出设备大小。
到这一步我已经放弃了"整盘克隆到小盘"这个思路。正确做法我当时理了一下,应该分三种:
一种是源盘文件系统支持缩小,先在源盘上把文件系统缩到比目标盘小,再把分区缩掉,然后 dd 只克隆分区内容而不是整盘。ext4 用 resize2fs,分区用 parted 的 resizepart,但根分区是挂载运行的,得用 live 环境或者离线做,操作顺序反了会损坏文件系统,风险不低。
另一种是干脆不用 dd,用能感知分区和文件系统的克隆工具,Clonezilla 这类,它只拷贝实际使用的块,还能自动处理分区大小。
我实际走的是第三种:目标盘重新分区装了个干净系统,然后从源盘 rsync 数据过去。虽然要重装系统、重配一堆东西,但胜在可控,不会再被 GPT 几何问题折腾。rsync 的时候注意保留权限、属主、硬链接:
rsync -aHAX --numeric-ids /mnt/src/ /mnt/dst/
-aHAX 分别对应归档、硬链接、ACL、xattr,缺了 -H 硬链接会变成普通文件复制,某些软件会出问题。
还有一个独立的小坑顺便记下:如果目标盘以前装过系统、上面有旧的分区签名,直接 dd 过去之后,新分区表和旧签名冲突,启动时可能认错分区。稳妥做法是先清掉目标盘开头的残留:
wipefs -a /dev/sdb
再开始克隆。这个动作本身也会把旧分区表抹掉,所以顺序是 wipefs 之后再 dd 才有意义。
要是源盘确实比目标盘小,或者数据少到能塞进去,还有一招是只克隆分区而不是整盘,然后手动处理引导。分区级克隆不会带分区表,所以这就是标题里"分区表没带过来"的另一种翻车形态——只 dd 了 /dev/sda1 到新盘的 /dev/sdb1,结果新盘没有可引导的分区表,开机直接进不去,得手动 parted 建分区表再装 grub。grub 重装这块又是一堆坑,跟这次的 GPT 问题叠加起来,真不如重装加 rsync 省心。
事后总结一句话:dd 适合整盘到等大或更大盘的裸拷贝,碰到"往小盘迁"这种需求,先缩文件系统再克隆,或者直接用 Clonezilla,硬用 dd 只会把自己困在分区表几何问题里。下次再遇到这种迁移,我直接 Clonezilla 起步,不再拿 dd 硬刚了。