迁移/home目录至新硬盘分区总结--无备份情况下
搞了一天,终于成功迁移。由于一开始就没备份过程实在很曲折。
希望本篇对那些没有备份习惯的朋友们有所帮助。
准备工作:
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,如图所示:

果然是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
这句才是正解啊。辛苦一天,写点心得,即是教训,也是积累。
迁移/home目录至新硬盘分区总结--无备份情况下的更多相关文章
- Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205
13.5 恢复临时文件 临时文件没有也不应该备份.通过V$TEMPFILE可以找到所有的临时文件. 此类文件的损坏会造成需要使用临时表空间的命令执行失败,不至于造成实例崩溃或session中断.由于临 ...
- Oracle 无备份情况下的恢复--控制文件/数据文件
13.3无备份恢复控制文件 没有备份恢复控制文件其实就是在nomount状态,create control创建一个新的控制文件. dba必须知道4个信息才能正确的创建:数据库名.在线日志路径及其大小. ...
- Oracle 无备份情况下的恢复--密码文件/参数文件
13.1 恢复密码文件 密码文件(linux 为例)在$ORACLE_HOME/dbs目录下,文件名的前缀是orapw,后接数据库实例名. [oracle@DSI backup]$ cd /u01/a ...
- Oracle备份恢复之无备份情况下恢复undo表空间
UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...
- mysql数据文件迁移到新的硬盘分区的方法
该系统增加了一个硬盘.要创建新的分区/data文件夹,mysql对于数据文件夹/var/lib/mysql 1. 停止mysql维修 [root@localhost~]# service mysql ...
- KVM虚拟机内无agent情况下的监控方法
KVM虚拟机内无agent情况下的监控(ceilometer实现) 今天看到大家在群里讨论KVM虚拟机的监控问题,而且是要求VM内无agent情况下的监控.这方面确实没有深入研究,但尚有些openst ...
- 关于img标签浏览器自带的边框,清除边框的解决方式(即img[src=""] img无路径情况下,灰色边框去除解决方法)
详解img[src=""] img无路径情况下,灰色边框去除解决方法 1.Js解决办法 <html> <head> <meta charset=&qu ...
- CentsOS7无网情况下安装mysql5.7
1.需求就不用讲了,客户现场,政府环境,银行环境,大多是没网的,所以无网安装是很有必要的 mysql下载路径:https://dev.mysql.com/downloads/mysql/ 查看自己Li ...
- Kali Linux ——在无网络情况下安装无线网卡驱动
1.背景: 今日刚刚开始学习kali linux,众所周知,安装完成后,系统是没有无线网卡驱动的,这就对学生党造成相当的困扰:校园网要连接有线是需要认证客户端的,而认证客户端只有windows端,如此 ...
随机推荐
- mysql中explain优化分析
效率比较 range >index > all
- Linux shell (一)
echo -e "Hello World! \a \n" # -e 解析反斜杠 read -p "Please input your first name: &q ...
- 一起学习iOS开发专用词汇,每天记3个,助你变大牛-b
大家做开发最大的问题是什么?英语的问题应该困扰很多的同学的地方,我们提倡科学学习开发中的常用词汇.我们不要求大家有特别好的听.说.写,只要能够记住,能够认识这些常用词汇你以后的开发也将游刃有余.我们的 ...
- 为什么同时需要IP地址和MAC地址
每个以太网设备在出厂时都有一个唯一的MAC地址,为什么还需要为每台主机再分配一个IP地址?或者说每台主机都分配唯一的IP地址,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC ...
- BZOJ1660: [Usaco2006 Nov]Bad Hair Day 乱发节
1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 606 Solved: 289 ...
- cannot be resolved to a type in same package 问题解决
在 STS 上,一个类引用在相同 package 中另一个类,但是报 cannot be resolved to a type 错误. 解决方法 : Alternatively, you can hi ...
- 最受欢迎linux命令
1. 以 root 帐户执行上一条命令 sudo !! 2. 利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000访问 python -m ...
- C++编写ATM(2)
//上一个程序,密码不能被隐藏和该ATM可以让人取大于余额的乐币,这可定不行的.所以再次改了下,解决这两个问题. // ATM的初始.cpp : 定义控制台应用程序的入口点. // /******** ...
- HTTP学习笔记1-基本定义
1,HTTP(Hypertext Transfer Protocol)超文本传输协议,http是TCP/IP协议的一个应用层协议:从1990年开始就在www上广泛应用,是现今在www上应用的最多的 ...
- Jenkins,Maven及TestNG在自动化测试的应用(转)
转自:http://qa.blog.163.com/blog/static/190147002201581634549893/ 希望实现的场景:Jenkins中的Job可针对不同浏览器,不同环境,运行 ...