【已迁移,持续关注中】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

【已迁移,持续关注中】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#1

帖子 恒河沙数1 » 2016-02-26 17:32

就在这两天打算买一块闪迪(SanDisk)mSATA接口的256G的SSD,由于不想重装系统,所以希望直接将现在的根目录迁移到新的SSD上,恳请大家看看我的方案有没有问题,如果有更好的方案也希望能够分享一下。

在我的机械硬盘上有2个分区,一个是/另一个是/home。
我参考的是这个帖子 http://askubuntu.com/questions/513873/h ... ome-on-hdd ,前半部分几乎一模一样,但是由于我的/home是单独分出来的,第4步命令就没有--exclude=/home/*这个参数

我的方案步骤:
1.安装SSD,完成性能测试;
2.使用gparted对SSD分区(选择ext4文件系统)和格式化(据说格式化时会自动4k对齐?)
3.使用启动盘启动电脑,并挂载原根分区和新的SSD分区
4.使用命令进行同步:

代码: 全选

sudo rsync -av /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
[/s]

代码: 全选

sudo rsync -avAX --info=progress2 /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
参数里为啥要加AX请看第9楼和第10楼
在一个更早的帖子 http://askubuntu.com/questions/40372/ho ... -to-an-ssd 里,用的命令是

代码: 全选

copy -ax /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
这两者哪一个更好一些?[/s]

5.先卸载SSD,然后使用命令安装引导:

代码: 全选

sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
[/s]

代码: 全选

sudo grub-install --boot-directory=/media/$mountpoint_of_new_drive/boot /dev/sdX
在另一个帖子里命令是:

代码: 全选

sudo -s
for f in sys dev proc ; do mount --bind /$f /media/ssd/$f ; done
chroot /media/ssd
grub-install /dev/ssd
update-grub
以往引导丢失时,我用过这些命令,所以还是不确定应该用前者还是后者亦或者是安装boot-repair这个软件:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
[/s]

代码: 全选

sudo -i
mount /dev/sdXY /mnt
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sdX
update-grub
exit
umount  /mnt/proc
umount  /mnt/dev
umount  /mnt/sys
6.根据blockid给出的信息修改/etc/fstab中根目录挂载分区的uuid(我只需要修改根目录挂载分区的uuid对么?对的)

7.根据这篇帖子 http://askubuntu.com/questions/18903/how-to-enable-trim,由于我的SSD品牌是SanDisk,所以我不需要做像这篇帖子 http://askubuntu.com/questions/443761/h ... im-enabled 里提到的修改/etc/cron.weekly/fstrim了是么?
只有Samsung和Intel的SSD可以自动trim,其他需要手动,详见本帖11楼。

8.我为了性能、安全等综合考虑是否需要在/etc/fstab中的挂载点上加入discard参数?根据8楼,加discard过时且影响性能,周期性的执行fstrim即可

9.https://wiki.debian.org/SSDOptimization 和 这里面所提到的操作我看起来很吃力也很困惑,但是否如这些朋友所言 viewtopic.php?t=453740 没有必要做什么优化?这些朋友所说是否正确? viewtopic.php?f=126&t=396075&start=17
目前没做优化


感谢大家了!


----------------------------------2016年2月28日晚22点更新-----------------------------------------
SSD已入手,性能如下图:
SanDisk X300
SanDisk X300

代码: 全选

$ sudo hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 24326 MB in 2.00 seconds = 12175.19 MB/sec
Timing buffered disk reads: 1580 MB in 3.00 seconds = 526.62 MB/sec
我现在选择的是MBR格式的分区表,一开始选择的是GPT,没搞定grub-install。
考虑到我的机械硬盘也是MBR,所以就改了过来。

同时出现了新的问题,详见9楼

----------------------------------2016年2月28日晚23点更新-----------------------------------------
9楼问题已解决,详见10楼

再观察观察看看还会不会出什么新问题。


----------------------------------2016年3月9日早9点更新-----------------------------------------
重启后trim过多的问题,详见12楼


----------------------------------2016年3月10日晚21点更新-----------------------------------------
12楼问题无解,原因见17楼,改善方法见15楼和修改后的11楼
上次由 恒河沙数1 在 2016-03-10 21:23,总共编辑 9 次。
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#2

帖子 qy117121 » 2016-02-26 18:07

4,我当初是用的打包的tar还原的,类似直接copy吧,命令应该都可以

5,安装grub的命令貌似是这样的吧 sudo grub-install --boot-directory=/mnt/boot /dev/sda

我感觉修改uuid应该是4之后5之前 ,我建议是用chroot的那个,(这里有更新grub的命令,可以把grub引导里的uuid更新)


以上纯属个人感觉,我没有这样做过,我是把打包的ubuntu解压到新分区后手动修改了fstab和grub.cfg的uuid,在之前的ubuntu中update-grub,引导进入SSD上的ubuntu后才grub-install /dev/sda的
其他不懂,我的是没做什么优化
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#3

帖子 恒河沙数1 » 2016-02-26 18:16

qy117121 写了:4,我当初是用的打包的tar还原的,类似直接copy吧,命令应该都可以

5,安装grub的命令貌似是这样的吧 sudo grub-install --boot-directory=/mnt/boot /dev/sda

我感觉修改uuid应该是4之后5之前 ,我建议是用chroot的那个,(这里有更新grub的命令,可以把grub引导里的uuid更新)
感谢,我再看看grub-install的用法。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#4

帖子 poloshiao » 2016-02-27 7:52

系统迁移方案
1. 參閱
http://apexu.com/apexu/tw/modules/publi ... ?itemid=11
2. 補充
2-1. 這個方法 適用於 分割區數量不變 但是分割區 大小可以改變 只要回存安裝得下
2-2. 如果你的系統分割區 超過 2 個以上 有必要請再貼文
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#5

帖子 恒河沙数1 » 2016-02-27 9:00

qy117121 写了:安装grub的命令貌似是这样的吧 sudo grub-install --boot-directory=/mnt/boot /dev/sda
你说的对,我已经更改了,谢谢~
参考 https://www.gnu.org/software/grub/manua ... stall.html
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#6

帖子 恒河沙数1 » 2016-02-27 9:29

poloshiao 写了:
系统迁移方案
1. 參閱
http://apexu.com/apexu/tw/modules/publi ... ?itemid=11
感谢你提供的另一种方案。
这个方法的5.6.7.8步为什么要使用sdc7做一个中转?能否直接将sda5的东西转存到sda6?进入项目的主页,发现它有压缩和解压缩的操作,这对于我来说是没有必要的,相比较cp或者rsync的方法,它的优势是否只有不需要手动创建文件系统?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#7

帖子 poloshiao » 2016-02-27 10:11

这个方法的5.6.7.8步为什么要使用sdc7做一个中转?
1. 不是中轉
是存放備存檔 backupfilename.fsa 到 /dev/sdc7
也可以存放在 /dev/sda5 /dev/sdb6 以外的任何一個已經掛載而且可以存取的分割區
隨時備用
確定不用時再刪除
1-1. 意思是 這個就是備存 ubuntu 系統到 備存檔 的方法
能否直接将sda5的东西转存到sda6?
2. http://manpages.ubuntu.com/manpages/wil ... ver.8.html
fsarchiver - filesystem archiver
2-1. 儲存
savefs Save filesystems to archive.
2-2. 回存
restfs Restore filesystems from archive.
2-3. 兩個指令 方向剛好相反 意思是 儲存 與 回存 不是同步
你可以今天備存 下個星期再回存到 同一個分割區 不同分割區 不同硬盤 不同電腦 (需要考慮到 硬件驅動是否相容) ...
2-4. 例如 先備存 重新分割 再回存
进入项目的主页,发现它有压缩和解压缩的操作,这对于我来说是没有必要的,
3. 要 壓縮 或 解壓縮 需要加 參數
-z level, --compress=level
3-1. 你不壓縮 就不要加 -z 參數
相比较cp或者rsync的方法,它的优势是否只有不需要手动创建文件系统?
4. cp 或 rsync 必須同步
fsarchiver 不是同步

5. fsarchiver 備存時 是 block by block 但是 跳過 空白 Block
5-1. 因為 跳過 空白 Block 所以 備存速度 比較快 特別是 使用率 還小的分割區 節省時間 明顯
5-2. 回存時 可以回存到 比較小的分割區 (只要裝得下)
5-3. 因為是 block by block 所以 包含 superblock 包含 分割區 UUID ...
只要同一個作業系統 沒有 相同 uuid 就不會衝突
5-4. /etc/fsab 上的掛載 通常是 uuid 所以 不必修改
5-4-1. 但是如果 原來的分割區 還在同一個作業系統 那麼 uuid 相同 需要修改其中一個 uuid 並且修改 /etc/fsab 的 對應掛載項目
onlylove
论坛版主
帖子: 5369
注册时间: 2007-01-14 16:23

Re: 近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#8

帖子 onlylove » 2016-02-27 13:00

根据楼主的7看,discard参数是automatic trim,但是是deprecated,因为slow……然后推荐scheduled trim,就是那个weekly trim,然后提到了几个牌子,是默认启用的,至于其他牌子,在14.04里面,让你用这条命令禁用

代码: 全选

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
或者在/etc/cron.weekly/fstrim 里面添加 --no-model-check
至于13.10和更早的发行版,scheduled trim貌似是手动添加cron任务的
不过还是建议你去搜下sandisk有没有相关文档
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 【已入手】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#9

帖子 恒河沙数1 » 2016-02-28 22:29

@qy117121 @poloshiao @onlylove
感谢大家的帮助,我已经基本完成了系统从机械硬盘到SSD的迁移,请看我重新编辑的主贴即1楼。

我使用的方案依然还是rsync,原因在于在我想要使用@poloshiao的方案时,我发现我没有额外的、足够大的储存设备去储存、回存。但是不得不说,fsarchiver是一个非常好的方案用于备份、迁移系统。

就在刚才,我发现了一个问题,我没有办法把其他分区挂载到/media/$USER目录下,同时,在我试图打开这个目录时它会提醒我没有权限。在比较了,别人电脑上这一目录的权限后,我发现我和它们的权限后面相差一个‘+’号。在google以后,得知这个意味着ACLs权限( http://serverfault.com/questions/227852 ... -from-ls-l ),我知道可以使用setacl命令设置这个权限,但是我并不知道需要设置成什么。于是我先重命名了/media/$USER为/media/${USER}.old,然后新建了一个/media/${USER}目录。之后我发现其他分区可以正常挂载了。

都怪我自己没有认真看manpage:

代码: 全选

man rsync
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-H, --hard-links preserve hard links
我的问题是,我在使用rsync命令是没有加入-A选项(即没有拷贝ACLs权限),请问这对于我的系统来说影响大么?
除了已经发现的/media/$USER文件夹具有ACLs权限,还有哪些其他文件/文件夹有这个权限?
我需要使用rsync加上-A选项(以及-H,-X选项)重新拷贝一次我的系统么?
上次由 恒河沙数1 在 2016-02-28 23:36,总共编辑 1 次。
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 【已入手】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#10

帖子 恒河沙数1 » 2016-02-28 23:21

恒河沙数1 写了: 我的问题是,我在使用rsync命令是没有加入-A选项(即没有拷贝ACLs权限),请问这对于我的系统来说影响大么?
除了已经发现的/media/$USER文件夹具有ACLs权限,还有哪些其他文件/文件夹有这个权限?
我需要使用rsync加上-A选项(以及-H,-X选项)重新拷贝一次我的系统么?
大家好!短短半个小时后我又回来了,经过激烈的思想斗争以及理论思考,我决定重新在用liveCD使用rsync -avAX 再来一次!然后我备份了改过的/etc/fstab。
(忘了说,第一次同步的时间是40分钟左右,我的根目录有约26G文件。)
这一次由于和上一次同步时间较近,而且理论上相当于只同步ACLs权限和拓展权限,以及我修改过的/etc/fstab文件以及boot引导,所以只用了5分钟,显示传输数据总量为3M左右(这次传输的作用就是增加了SSD盘根目录文件/文件夹的ACLs权限和拓展权限,然后用旧的机械盘的fstab覆盖了新的SSD的fstab重写了boot引导(这个引导是机械盘上的,是不对的))。
然后我把我备份的/etc/fstab覆盖到SSD的/etc目录下,然后按照主楼的第5步重建了SSD的引导。

问题解决!!!好开心啊啊!!
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 【已迁移,观察测试中】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#11

帖子 恒河沙数1 » 2016-03-04 18:02

今天逛别人的博客,无意间发现了一篇帖子 http://plumz.me/archives/1428/ ,帖子中链接接到 http://www.webupd8.org/2013/12/trim-ena ... ds-on.html
Update: Only Intel and Samsung SSDs will have TRIM enabled by default in Ubuntu 14.04 because some cheap SSDs can even brick themselves when running TRIM. This doesn't mean TRIM should only be used with Samsung and Intel SSDs, but to avoid running into issues, this is the only option for now.
http://plumz.me/archives/1428/ 列举了一种方法,还能够知道计划任务有没有执行,在此分享一下:

代码: 全选

$ gksu gedit /etc/cron.daily/trim
添加:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
最后设定为可运行

代码: 全选

sudo chmod +x /etc/cron.daily/trim
[/s]
根据15楼给出的参考,每日trim似乎不太合适,所以更改为如下:

代码: 全选

$ gksu gedit /etc/cron.weekly/trim
添加:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
最后设定为可运行

代码: 全选

sudo chmod +x /etc/cron.weekly/trim
对了,很多人可能关心到底什么时候trim,我在网上google了一下,由于ubuntu中anacron是默认安装的,因此在有anacron的情况下,cron.daily的执行时间是7:35。参考: http://askubuntu.com/questions/36971/at ... ly-scripts 注意得票最高的并不正确,请看@DaithiF的回答。

再补充一点,如果该执行任务的时候,电脑没有开机,这个daily任务会默认在下次开机5分钟后执行。 参考: http://www.thegeekstuff.com/2011/05/anacron-examples/
上次由 恒河沙数1 在 2016-03-10 21:12,总共编辑 1 次。
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 【已迁移,观察测试中】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#12

帖子 恒河沙数1 » 2016-03-09 9:12

恒河沙数1 写了:今天逛别人的博客,无意间发现了一篇帖子 http://plumz.me/archives/1428/ ,帖子中链接接到 http://www.webupd8.org/2013/12/trim-ena ... ds-on.html
Update: Only Intel and Samsung SSDs will have TRIM enabled by default in Ubuntu 14.04 because some cheap SSDs can even brick themselves when running TRIM. This doesn't mean TRIM should only be used with Samsung and Intel SSDs, but to avoid running into issues, this is the only option for now.
http://plumz.me/archives/1428/ 列举了一种方法,还能够知道计划任务有没有执行,在此分享一下:

代码: 全选

$ gksu gedit /etc/cron.daily/trim
添加:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
最后设定为可运行

代码: 全选

sudo chmod +x /etc/cron.daily/trim
对了,很多人可能关心到底什么时候trim,我在网上google了一下,由于ubuntu中anacron是默认安装的,因此在有anacron的情况下,cron.daily的执行时间是7:35。参考: http://askubuntu.com/questions/36971/at ... ly-scripts 注意得票最高的并不正确,请看@DaithiF的回答。

再补充一点,如果该执行任务的时候,电脑没有开机,这个daily任务会默认在下次开机5分钟后执行。 参考: http://www.thegeekstuff.com/2011/05/anacron-examples/
以下内容是这几天的trim的日志记录:

代码: 全选

$ cat /var/log/trim.log
*** Sat, 05 Mar 2016 07:45:44 +0800 ***
/: 219444977664 bytes were trimmed
*** Sun, 06 Mar 2016 07:51:26 +0800 ***
/: 3834396672 bytes were trimmed
*** Mon, 07 Mar 2016 08:08:36 +0800 ***
/: 2750799872 bytes were trimmed
*** Tue, 08 Mar 2016 07:42:33 +0800 ***
/: 219187560448 bytes were trimmed
*** Wed, 09 Mar 2016 07:30:04 +0800 ***
/: 2657067008 bytes were trimmed
可以发现第一次和倒数第二次每次都trim了220G(我的SSD一共256G),其他时间都是在2-4G左右,通过手动测试发现,无论上一次trim是什么时候,只要重启电脑,再次trim的时候就会高达200G+,请问各位这是否有问题?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 【已迁移,有关trim的问题】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#13

帖子 poloshiao » 2016-03-09 10:38

cron.daily 可以发现第一次和倒数第二次每次都trim了220G(我的SSD一共256G),其他时间都是在2-4G左右,通过手动测试发现,无论上一次trim是什么时候,只要重启电脑,再次trim的时候就会高达200G+,请问各位这是否有问题?
http://askubuntu.com/questions/205930/a ... 715#283715
The difference between automatic and manual trim is that automatic trim (using the discard mount option) trims freed blocks on sync after any file is deleted, whereas manual trim (using fstrim) trims all the free space at once.
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 【已迁移,有关trim的问题】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#14

帖子 恒河沙数1 » 2016-03-09 12:06

poloshiao 写了:
cron.daily 可以发现第一次和倒数第二次每次都trim了220G(我的SSD一共256G),其他时间都是在2-4G左右,通过手动测试发现,无论上一次trim是什么时候,只要重启电脑,再次trim的时候就会高达200G+,请问各位这是否有问题?
http://askubuntu.com/questions/205930/a ... 715#283715
The difference between automatic and manual trim is that automatic trim (using the discard mount option) trims freed blocks on sync after any file is deleted, whereas manual trim (using fstrim) trims all the free space at once.
感谢你的回复。但这个连接中所说的自动trim和我这里的自动trim不一样,可见的我的11楼脚本,所谓我的自动trim只是代替我执行了sudo fstrim -v / 这个命令而已, 而那个连接中的自动trim指的是在fstab中加入discard选项。

还有一点请注意,问题的关键在于,我的日志文件记录的自动trim的结果不一致,第一条结果和倒数第二条结果都是在自动trim之前有过重启的,而其他都是一直开机或是睡眠(不是休眠)的状态。我猜测是重启导致下一次trim结果很大,同时也通过手动验证了这个猜测。
我想知道这是我设置的问题,还是大家都是这样?
亦或者trim很多是否会影响SSD寿命?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 【已迁移,有关trim的问题】近日准备入手SSD,恳请论坛各位朋友帮忙看看我的系统迁移方案是否有问题

#15

帖子 poloshiao » 2016-03-09 19:38

所谓我的自动trim只是代替我执行了sudo fstrim -v / 这个命令而已, 而那个连接中的自动trim指的是在fstab中加入discard选项。
我的日志文件记录的自动trim的结果不一致
亦或者trim很多是否会影响SSD寿命
1. http://manpages.ubuntu.com/manpages/xen ... rim.8.html
fstrim - discard unused blocks on a mounted filesystem

fstrim 指令 執行 discard 動作或說任務

Running fstrim frequently, or even using mount -o discard, might negatively affect the lifetime of poor-quality SSD devices.
For most desktop and server systems the sufficient trimming frequency is once a week.
Note that not all devices support a queued trim, so each trim command incurs a performance penalty on whatever else might be trying to use the disk at the time.

一個星期 一次 太常執行 傷害
一次執行多次帶來效率懲罰

http://unix.stackexchange.com/questions ... -do-fstrim
SSD: how often should I do fstrim?
回复