首页 技术 正文
技术 2022年11月21日
0 收藏 701 点赞 2,322 浏览 2362 个字

搞了一天,终于成功迁移。由于一开始就没备份过程实在很曲折。

希望本篇对那些没有备份习惯的朋友们有所帮助。

准备工作:

sudo vim /etc/fstab

在文件中加入:

/dev/sdb8       /home            ext4    user,rw 0       2

这里其实有问题的,后面会提到

一个新的linux分区,这里我的新分区是sdb8,个人不尽相同。我用的是ext4格式,注意要新的,不要有坏块,最好重新格式化下。我就是因为没格式化,吃过亏,logo界面就提示挂载出错,真心寒。

果断进入 ctrl +alt + f1,命令行模式,执行mount -a , 系统会提示输入一个指令,我输入这个指令后,发现有坏块,果断格式化

怎么格式化,这里不详细讲解了。用命令mkfs就可以,保险起见,我还用了sudo fdisk /dev/sdb查看了分区表情况,也正常。


那么接下来将详细讲述本文重点部分,就是不备份情况如何成功迁移/home至新分区

格式化完毕,分区别也正常,那么重启。然后问题来了:无法登入桌面。一直要你输入密码,密码没有问题,因为tty1,即开头讲的命令行可以登陆。

无法登入桌面的原因,网上有很多,方法也很多。我之前也碰到过一次,之前因为我肆无忌惮的删除各种依赖包,导致系统文件损坏,网上纵使有很多大神,我也只能说是回天乏力,无奈之下,我只能重装,就诞生了那篇分区表损坏情况下重装日志。所以还请各位删依赖的时候,千万要小心,除非你记得,这些依赖包的名字,你可以重新install回来。

那么这次无法登入桌面,原因是完全不一样的,因为我发现我用会客是可以登入的,说明桌面系统并没有损坏,那么网上那些关于重新intall 桌面的命令,全都可以忽略不计,因为药不对疾,我们要关注那些,修改主目录配置文件的命令,如:rm ~/.Xauthority等等的,这条命令只是参考,但意义很重要,下面会讲到。

那么问题又来了,既然~下的配置文件,我现在只是在fstab加了/home目录,还没有主目录,当然系统登入不了,于是在/home下, mkdir rainey/。这样主目录就设置好了,重启后,意料之中,一点变化也没有,为什么,因为没有.Xauthority这个配置文件,但是网上不说要删除这个文件,我这里反而要添加呢,原因我后面会讲到,我先来在~下添加这个文件(可以在/目录下搜索到这个文件,然后拷贝到你的主目录下),然后重启,情况是:可以登入桌面,但是是死的。就是说密码界面已经通过,桌面的控件没有激活,相当于死的。

这里就关系的权限问题了,ls -l /home ,你会发现你主目录所有者居然是root(即使fstab下我的挂在参数写的usr, 也还是以root权限挂上去,这个不知道ubuntu为什么要这么做),这自然有问题了,linux好就好在它的挂载系统,原来/home目录下文件还是存在,只不过没有挂在点而已。为了确认是不是权限问题,我把fstab下/home分区挂载的那句注掉,然后重启,系统会自动找到/分区下的/home目录(原先的默认home挂载点).

执行:ls -al,如图所示:

迁移/home目录至新硬盘分区总结–无备份情况下

果然是rainey为所有者

那么回过来,重新将fstab下刚刚注释的那一行还原,重起后执行:

sudo chmod rainey:rainey /home/rainey

然后重启。顺利进入桌面。

回过头来想想,是不是我们一开始就用这个命令,或者用sudo chmod 777 /home/rainey 这样的命令,问题就会得到解决呢,也许吧,因为毕竟.Xauthority这个配置文件是自动生成,也许创建主目录后,直接改权限,能让我们少走弯路,读者自行尝试吧。

可是这次操作并未就此结束,因为主目录下很多配置文件都非常有用,很多我们开发用的环境配置都在里面,所以我打算还是把原来主目录下的.*这些配置文件都考到我新的主目录喜下,那么需要重新回到原来的主目录(方法上面已经讲到过),然后备份到其他分区(只要不在原来/home目录下就好),然后再这些备份的配置文件拷贝到新主目录下。但是是会发现,你很多应用程序不能跑,会报错,首先考虑的权限问题,很多目录都是root用户的,改为自己的用户。

虽然这样解决了大部分,程序报错的问题。但是我最主要环境AS(Android Studio)还是报错,说~/.AndroidStudio1.03/system/tmp/*.sh(具体名字太长忘了),这个文件权限不够,建议我重装,好,我听它的,重装as,坑爹,还是报一模一样的问题,那说明配置有问题。起初以为是这个sh文件的问题,于是自己写了个sh,发现也不能执行。说明不是文件问题。然后又发现/bin/bash *.sh就可以执行, ./*.sh就不行,于是尝试在PATH环境变量下加入./,结果发现还是不行。于是尝试把*.sh移动/目录下执行,发现./*.sh。顿时,豁然开朗,肯定是/home目录下,可执行权限配置跟其他目录不一样,但是/home下目录都是rainey用户的了啊,也都包含了x权限了啊。百思不得其解啊,挂载出现了问题,因为/home就挂载方式跟其他目录不一样,其他配置都一样啊。然后仔细回想挂载全过程,突然想到点了,fstab,对,就是一开始我提到后面会着重讲到那句挂载语句,挂载参数出了问题,亲们,以后挂载参数千万不能写rw啊(就算你把/home下所有东西都改成777,这一关也过不去啊),就因为这句话,整整让我折腾了一天啊。下面给出正确的挂载语句:

/dev/sdb8       /home                   ext4            errors=remount-ro               0       1

这句才是正解啊。辛苦一天,写点心得,即是教训,也是积累。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731