贡献者: addis
sudo dd 是一个很危险的命令,它直接操作硬盘上的任意位置的数据,无论是否被挂载.sudo dd if=/dev/random of=/dev/sda 会把整个硬盘包括分区方式(MBR,GPT)等所有信息抹掉
dd if=/dev/sda of=/data/disk.img bs=446 count=1,还原同理,但还原最好只用 440 字节
dd if=/dev/sda of=/dev/sdc bs=440 count=1
sudo dd if=/dev/zero of=/dev/sdx bs=440 count=1
Gparted 是一个 GUI 硬盘分区工具,在 Ubuntu live CD 中自带
GParted 使用 e2image -ra -p /dev/sda1 /dev/sdb1 来复制分区,没有数据的部分不会复制,Arch Wiki 中的 “disk cloning” 词条列出了很多工具.用 e2image 来备份和恢复参考这里.
sda, sdb 等编号是不稳定的,可能重启等操作之后会变
fdisk -l 查看所有挂载的硬盘
lsblk 也可以查看
resize2fs -p /dev/sd? ???K 可以改变 ext4 文件系统的大小,Gparted 用的就是这个命令.这个命令需要很长时间.
mklabel 修改分区的 label
mkfs.ext4 /dev/sdx1 或者 mke4fs -t ext4 /dev/sdb1 把某个分区格式化为 ext4
extFAT 在 Ubuntu 中并不怎么支持 resize 和移动,还是用 windows 的傲梅比较好
uid=1000,gid=1000 是当前登录用户的 user/group id.
NTFS 的设置是 LABEL=mydrive2 /mnt/drive2 ntfs-3g nofail,x-gvfs-show,uid=1000,gid=1000 0 0
exFAT 的设置是 LABEL=mydrive1 /mnt/drive1 exfat nofail,x-gvfs-show,uid=1000,gid=1000 0 0
LABEL= 或者 UUID=,第二列是 mount point,第三列是文件系统,用 auto 可以自动检测.第四列是一些选项,nofail 是即使硬盘没有插入也不会报错,x-gvfs-show 是在 gnome 文件浏览器和 taskbar 中显示.uid 和 gid 是挂载后文件的 owner,1000 是当前用户.
grub-customizer, 可以设置 grub 菜单,记住上次的选择,检测新系统,等.
os-prober 也可以发现新系统并加入 grub 菜单(会被 grub-customizer 使用)
/boot/grub/grub.cfg,GPT 的在 /boot/efi/EFI/ubuntu/grub.cfg
lilo 是一个可以安装 generic windows boot loader on MBR 的命令
sda, sdb 等在 grub2 命令行里面的 ls 名字叫做 hd1, hd2...
sudo grub-install /dev/sd# 可以在某个硬盘中安装 grub (注意如果硬盘只有一个分区的话,分区名和硬盘名相同,安装可能就会出错)
grub-install 可能使用 grub-pc 包也可能使用 grub-efi-amd64 包.前者给 MBR 硬盘安装,后者给 GPT 硬盘安装.它们可以同时安装.
failed to get canonical path of... 就用 sudo grub-install /dev/sdX --root-directory=/mnt/[mount point directory]
will not proceed with blocklist,就在安装命令后面加 --force.
df 只会显示已挂载的硬盘,而 fdisk 或者 disk, gparted 软件才会显示所有连接的硬盘
sudo dd bs=4M if=/path/to/ISOfile of=/dev/sda status=progress oflag=sync 注意 sda 后面不能有数字! 这样 dd 会把整个硬盘克隆成 iso 的内容而无视之前的任何 partition table 和分区.此时 u 盘和光盘完全等效,都是只读的(亲测成功).
/boot/grub/grub.cfg 或者 grub.config 定义的
sudo grub-install ... 在新硬盘上面安装 grub(如果说什么不推荐用啥不稳定的,就在后面加 --force). 然后再把原来的 grub.cfg 拷贝到新硬盘就好了(不确定新安装 grub 会不会把 cfg 重置).
blkid 可以查看所有分区的 uuid
tune2fs -U random /dev/sdb? , disk 中会看到变化,如果 blkid 看见 uuid 没有变化,就 mount 再 umount 即可刷新
fdisk 也可以改变 uuid, sudo fdisk /dev/sd? 然后按 x 再按 i 即可
以下步骤亲测成功.
dd 命令备份并拷贝 MBR
grub-install /dev/sd? 重新安装 grub,确认目标硬盘中 /boot/grub/grub.cfg 配置文件中所有 UUID 都是新分区的 UUID 而不是老的.如果是老的就全部替换.
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利