标签: partition-table

各种分区表有什么区别?

当我想创建一个新的分区表时,我有以下选项:

  • aix
  • amiga
  • bsd
  • dvh
  • gpt
  • mac
  • msdos
  • pc98
  • sun
  • loop

gparted 中的默认值似乎是msdos我猜是“MBR”分区表。但是gpt是更新的,但对 Windows 的支持较少。我已经使用 Linux 很长时间了,但我从来没有真正研究过分区。

有哪些不同的选项及其区别?是否有推荐用于仅用于 Linux 的磁盘?

partition partition-table

74
推荐指数
2
解决办法
7万
查看次数

脚本到 gdisk /dev/sdX 并输入专家命令:x, z, y, y - 如何?

我正在创建我的第一个 Arch Linux 安装脚本,我想像在archwiki 中一样自动进行基本安装,或者您可以在此处找到相同的说明但更容易阅读:https : //www.gloriouseggroll.tv/arch-linux-efi -安装指南/

我想擦除分区表,我必须手动输入:

gdisk /dev/sda
x
z
y
y
Run Code Online (Sandbox Code Playgroud)

我希望 bash 脚本自动执行此操作。

partition-table gdisk sgdisk

9
推荐指数
1
解决办法
3415
查看次数

在重新格式化/重新分区之前删除 GPT/MBR 标签是否重要?

我看过一些磁盘格式化/分区讨论,提到第一步要破坏现有的 GPT/MBR 数据结构:

sgdisk --zap-all /dev/nvme0n1
Run Code Online (Sandbox Code Playgroud)

我以前没有意识到这一点,当我设置磁盘时,我通常使用:

parted --script --align optimal  \
    /dev/nvme0n1 --              \
    mklabel gpt                  \
    mkpart ESP fat32 1MiB 512MiB \
    set 1 boot on                \
    name 1 boot                  \
    mkpart primary 512MiB 100%   \
    set 2 lvm on                 \
    name 2 primary
Run Code Online (Sandbox Code Playgroud)

我应该先把事情清理干净(例如sgdisk --zap-all)吗?不这样做有什么缺点?

gpt mbr disk partition-table

7
推荐指数
1
解决办法
673
查看次数

检查分区是否正确对齐以提高性能?

我刚刚为硬盘 ( /dev/sda)上的整个空间创建了一个 GPT 磁盘标签,如下所示:

# parted

(parted) select /dev/sda
(parted) mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Y
(parted) mkpart primary 0% 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted) quit
Run Code Online (Sandbox Code Playgroud)

现在进一步阅读后,我意识到“忽略”可能是一个坏主意。

但...

# parted

(parted) print
Model: ATA ST33000650NS (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: …
Run Code Online (Sandbox Code Playgroud)

performance partition parted gpt partition-table

6
推荐指数
1
解决办法
1万
查看次数

使用 di partman 配方字符串?

我想以相同的方式自动对我的所有工作站进行分区:

  • 第一个分区是一个可引导的 1GB ext4 /boot 分区
  • 第二个分区是一个 2GB 的交换分区
  • 第三个分区是一个 ext4 / 分区,它占用了剩下的任何东西
  • 所有分区都应该格式化

我认为将此添加到我的 preseed.cfg 将完成我想要的:

d-i partman-auto/workstation_recipe string \
    root :: \
        1024 1023 1024 ext4 \
            $primary{ } $bootable{ } \
            method{ format } format{ } \
            use_filesystem{ } filesystem{ ext4 } \
            mountpoint{ /boot } \
        . \
        2048 2047 2048 linux-swap \
            $primary{ } \
            method{ swap } format{ } \
        . \
        17408 100000000000 -1 ext4 \
            $primary{ } \
            method{ format } format{ …
Run Code Online (Sandbox Code Playgroud)

partition system-installation preseed debian-installer partition-table

6
推荐指数
1
解决办法
9654
查看次数

恢复已删除的 LUKS 分区

我已经(有)以下设置:使用 LUKS 和单独加密的 /home 分区的全盘加密。错误地删除了我的 /root 但发现得足够早,所以只更改了分区表。现在我只剩下以下内容:

sudo hexdump -C /dev/nvme0n1 |grep LUKS
3e900000  4c 55 4b 53 ba be 00 01  61 65 73 00 00 00 00 00  |LUKS....aes.....|
Run Code Online (Sandbox Code Playgroud)

这意味着 LUKS 标头仍然完整(呼)

然后我在该偏移量上创建一个循环设备

 sudo losetup -o 0x3e900000 -r -f /dev/nvme0n1 
Run Code Online (Sandbox Code Playgroud)

并安装它

 sudo cryptsetup luksOpen /dev/loop1 luksrecover
Run Code Online (Sandbox Code Playgroud)

到目前为止,它运行良好,安装正确,我可以看到我的文件,并且通过更多的命令,我可以恢复我单独的 /home 。

但是,由于我确实拥有完整的操作系统,因此我希望将其退回。似乎唯一的问题是,没有 grub 可以调用初始的 Xubuntu LUKS 解密器。

现在,因为我看到我的分区有很大的偏移,我想那是 grub 曾经居住的地方

那么,我该怎么做才能恢复我的操作系统?据我所知,我必须以某种方式将字节 0 - $offset 标记为 grub 并将 grub 安装在那里,其余的作为其他东西。所以我尝试了 grub-install /dev/nvme0n1 并且它抱怨 aufs

grub-install: error: failed to get canonical path …
Run Code Online (Sandbox Code Playgroud)

grub2 luks partition-table

6
推荐指数
1
解决办法
3569
查看次数

如何将 Ubuntu 添加到 Arch Linux grub(双引导)(UEFI)

我想要双启动,问题是如果我在 Ubuntu 之后安装 Arch Linux,我不知道如何让 Arch Linux 检测到 Ubuntu。

我是这样分区Ubuntu的

在此输入图像描述

在Arch中我只创建根分区,所以结果是这样的

在此输入图像描述

然后我这样做了:

 mkfs.ext4 /dev/sda4
 mount /dev/sda4 /mnt
 mkdir /mnt/boot
 mkdir /mnt/boot/EFI
 mount /dev/sda1 /mnt/boot/EFI
Run Code Online (Sandbox Code Playgroud)

结果是

在此输入图像描述

即将完成我所做的安装

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

但没有找到 Ubuntu

Obs:我尝试为 Ubuntu 制作一个 EFI 分区,为 Arch 制作另一个 EFI 分区,我执行了相同的过程,但什么也没做。

那么我需要做什么才能将 Ubuntu 添加到 Arch Linux grub 中。谢谢

grub arch-linux uefi partition-table

6
推荐指数
1
解决办法
3062
查看次数

无法挂载循环设备上创建的分区(指向文件)

目标

\n\n

我正在尝试使用文件从头开始制作硬盘映像。这包括 MBR、分区表、分区数量等。但我一生都无法让 Linux 挂载我创建的分区。

\n\n

编辑:请参阅问题末尾的更新 - 似乎与 vboxsf 有关

\n\n

程序

\n\n

到目前为止,我已经尝试了许多不同的方法,但那些最有效的方法最终都到达了同一个地方。我在下面制作了一个简化版本,应该足以解释我的问题

\n\n

使用 dd 生成空文件(或截断速度)

\n\n
dd if=/dev/zero of=test.img bs=1M count=150\n
Run Code Online (Sandbox Code Playgroud)\n\n

制作分区表

\n\n
parted -s test.img mklabel gpt\nWarning: The resulting partition is not properly aligned for best performance.\n
Run Code Online (Sandbox Code Playgroud)\n\n

制作分区

\n\n
parted -s test.img -- mkpart logical 0 5M\nparted -s test.img set 1 bios_grub on\nparted -s test.img -- mkpart logical 5M 50M\netc.\n
Run Code Online (Sandbox Code Playgroud)\n\n

安装为循环设备(加载 max_part=31 的循环模块)

\n\n
losetup /dev/loop0 test.img\n
Run Code Online (Sandbox Code Playgroud)\n\n

lsblk 来检查

\n\n …

filesystems partition loop-device disk-image partition-table

5
推荐指数
1
解决办法
2748
查看次数

无法安装、读取、写入或格式化 SD 卡

我可以

  • 当它处于“锁定”位置时从我的 micro-sd 卡中读取

但是当我尝试“解锁”它时,事情变得非常奇怪:我没有办法

  • fsck 它,也不
  • 安装它,也不
  • 读了,也不..
  • 格式化吧!

我需要格式化它,我该怎么办?

这是我的gparted输出:

$ sudo gparted
Created symlink /run/systemd/system/-.mount ? /dev/null.
Created symlink /run/systemd/system/boot-efi.mount ? /dev/null.
Created symlink /run/systemd/system/home-iago\x2dlito-.docker-devicemapper.mount ? /dev/null.
Created symlink /run/systemd/system/home.mount ? /dev/null.
Created symlink /run/systemd/system/run-user-1000.mount ? /dev/null.
Created symlink /run/systemd/system/run-user-117.mount ? /dev/null.
Created symlink /run/systemd/system/tmp.mount ? /dev/null.
Created symlink /run/systemd/system/var.mount ? /dev/null.

======================
libparted : 3.2                                         # see screenshots
======================                                  #
Input/output error during write on /dev/mmcblk0         # first error …
Run Code Online (Sandbox Code Playgroud)

debian input sd-card disk partition-table

5
推荐指数
0
解决办法
2909
查看次数

如何更新/刷新 lsblk 报告的已更改的部分标签?

在 Linux 上,该命令lsblk -o partlabel将显示partlabel块设备。

我曾经gdisk改变过一个partlabel.

更改后,lsblk仍报告 的旧值partlabel

(旁白:路径/dev/disk/by-partlabel/*也仍在使用旧partlabel值。)

有没有办法刷新缓存以便lsblk报告 的新值partlabel

我不确定缓存到底在哪里。它可能是 udev、sysfs 或其他地方。

相比之下,blkid正确报告新的partlabel. 但是,我希望我可以避免切换到blkid(出于各种原因)。

(旁白:重新启动可能会更新这些partlabel值。但如果可能的话,我宁愿避免重新启动。)

linux udev sysfs partition-table lsblk

5
推荐指数
1
解决办法
7131
查看次数