当前位置: 首页 > news >正文

解决Ubuntu下无法装载 Windows D盘的问题




电脑安装了 Windows 和 Ubuntu 24.04 后,在Ubuntu系统上装载 D盘,发现无法装载错误如下:

Error mounting /dev/nvme0n1p4 at /media/jackeysong/Data: wrong fs type, bad option, bad superblock on /dev/nvme0n1p4, missing codepage or helper program, or other error

在这里插入图片描述

错误的原因是装载D盘时,文件系统的类型错误。Windows 系统使用的文件系统类型为 ntfs,绝大多数发行版 Linux 系统使用的文件系统类型是 ext4 . 当使用 ext4 来装载一个 ntfs 类型的磁盘分区时,就会出现以上 wrong fs type 错误。

解决方法

一、手动装载

手动装载D盘分区,在 /media/jackeysong/ 下创建一个 Data 文件夹,然后将磁盘分区 /dev/nvme0n1p4 装载到该文件夹下:mount -t ntfs /dev/nvme0n1p4 /media/jackeysong/Data

jackeysong@jackey-song:~$ sudo -i
[sudo] password for jackeysong: 
root@jackey-song:~# mkdir /media/jackeysong/Data
root@jackey-song:~# ls /media/jackeysong
008D-B2D7  Data
root@jackey-song:~# mount -t ntfs /dev/nvme0n1p4 /media/jackeysong/Data

然后打开 D盘,装载成功。

如果装载失败可能是缺少 ntfs 驱动的原因。NTFS 分区需要安装 ntfs-3g 驱动才能正常挂载。如果你没有安装 ntfs-3g,可以使用以下命令安装:

sudo apt update
sudo apt install ntfs-3g

强制使用 ntfs-3g 驱动进行挂载:sudo mount -t ntfs-3g /dev/nvme0n1p4 /media/jackeysong/Data

二、编辑 /etc/fstab 文件指定默认装载方式

每次都手动装载分区会比较麻烦,也可以编辑 /etc/fstab 配置文件,来为某个分区指定装载时的默认文件系统类型。

  1. 找到指定分区的 UUID,使用 sudo blkid 命令:

    root@jackey-song:~# blkid
    /dev/nvme0n1p5: UUID="723696bd-9024-4a98-8094-70e5abd815c7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a95ec632-4081-464d-95e2-8260febba3df"
    /dev/loop1: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/nvme0n1p3: LABEL="Windows" BLOCK_SIZE="512" UUID="FA00939A00935C87" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="a89e60f7-6279-4bc6-a2dd-41aca8b2a9e0"
    /dev/nvme0n1p1: LABEL_FATBOOT="SYSTEM" LABEL="SYSTEM" UUID="18CE-BE31" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="c5507935-a83b-4c4b-8e76-6698106dc676"
    /dev/nvme0n1p4: LABEL="Data" BLOCK_SIZE="512" UUID="A43AB43A3AB40B76" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8c5273ff-a1a9-4f08-a06c-fe6b16cc2992"
    /dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="78d2fc75-5222-454d-b35e-54daeab76cbd"
    /dev/loop8: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop6: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop4: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop11: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop2: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop0: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop9: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop7: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/sda1: UUID="008D-B2D7" BLOCK_SIZE="512" TYPE="exfat" PARTUUID="d9a95602-01"
    /dev/loop5: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop12: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop3: BLOCK_SIZE="131072" TYPE="squashfs"
    /dev/loop10: BLOCK_SIZE="131072" TYPE="squashfs"
    

    我这里要找的分区是 D 盘的分区 /dev/nvme0n1p4 ,其对应的 UUID 是 A43AB43A3AB40B76

  2. 编辑 /etc/fstab 文件,加入以下一行:

    UUID=A43AB43A3AB40B76 /media/jackeysong/Data ntfs defaults 0 0
    
    • UUID 指定分区的唯一编号。
    • /media/jackeysong/Data 装载路径。
    • ntfs 挂载时使用的文件系统类型。
    • defaults:挂载选项,通常使用 defaults 就可以满足大部分需求。
    • 0 0:表示该分区不会参与系统备份,也不进行磁盘检查。

通过以上两个步骤就可以正确自动挂载 Windows D盘了。相应地,C盘(Windows系统盘)也可以这样自动挂载,但是千万注意要使用正确的文件系统类型(ntfs),否则会导致你的 Windows 系统开机蓝屏,只能重装 Windows 系统。(别问我怎么知道的,我的 Windows 系统就是这么蓝屏的。还好可以在 Ubuntu 系统上使用工具 woeUSB-ng 制作 Windows 启动U盘重装系统。不过所有的 Windows 数据都会丢失,谨慎操作。)


Windows 和 Ubuntu 双系统的电脑,可以将 D盘作为两个系统的共享盘。

Windows 系统关机后,进入 Ubuntu 系统,对 D盘是只读权限。要想对 D盘有读写权限,需要在 Windows 下关机时选择重启,重启后直接进入到 Ubuntu 系统。这样 Ubuntu 就可以对 D盘有读写权限了。

温馨提示:在 Ubuntu 下切莫要对 Windows 系统盘做更改,否则你的 Windows 系统可能会崩掉。不要以 ext4 类型挂载 Windows 系统盘,这样会导致退出 Ubuntu 重启 Windows 时,出现蓝屏(磁盘错误)。正常情况下,以 ntfs 类型挂载 Windows 系统盘后,对 Windows 盘是只读权限。




扩展内容

lsblk

lsblk(list block devices)是查看系统中块设备(硬盘、分区、光驱等)的一种常用方法。

jackeysong@jackey-song:~$ sudo -i
[sudo] password for jackeysong: 
root@jackey-song:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0     4K  1 loop /snap/bare/5
loop1         7:1    0  74.3M  1 loop /snap/core22/1564
loop2         7:2    0 269.8M  1 loop /snap/firefox/4793
loop3         7:3    0  10.7M  1 loop /snap/firmware-updater/127
loop4         7:4    0 505.1M  1 loop /snap/gnome-42-2204/176
loop5         7:5    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop6         7:6    0  10.5M  1 loop /snap/snap-store/1173
loop7         7:7    0  38.8M  1 loop /snap/snapd/21759
loop8         7:8    0   500K  1 loop /snap/snapd-desktop-integration/178
sda           8:0    1 114.6G  0 disk 
└─sda1        8:1    1 114.6G  0 part /media/jackeysong/008D-B2D7
nvme0n1     259:0    0 476.9G  0 disk 
├─nvme0n1p1 259:1    0   100M  0 part /boot/efi
├─nvme0n1p2 259:2    0    16M  0 part 
├─nvme0n1p3 259:3    0   120G  0 part 
├─nvme0n1p4 259:4    0 293.3G  0 part 
└─nvme0n1p5 259:5    0  63.5G  0 part /

fdisk -l

fdisk 是一个磁盘分区工具,-l 选项可以列出所有硬盘及其分区信息。

root@jackey-song:~# fdisk -l
Disk /dev/loop0: 4 KiB, 4096 bytes, 8 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop1: 74.27 MiB, 77881344 bytes, 152112 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop2: 269.77 MiB, 282873856 bytes, 552488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop3: 10.72 MiB, 11239424 bytes, 21952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop4: 505.09 MiB, 529625088 bytes, 1034424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop5: 91.69 MiB, 96141312 bytes, 187776 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop6: 10.54 MiB, 11051008 bytes, 21584 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop7: 38.83 MiB, 40714240 bytes, 79520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN730 SDBPNTY-512G-1027          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BB40C022-7036-4376-87FC-CE3A69916C17Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048     206847    204800   100M EFI System
/dev/nvme0n1p2    206848     239615     32768    16M Microsoft reserved
/dev/nvme0n1p3    239616  251897855 251658240   120G Microsoft basic data
/dev/nvme0n1p4 251897856  867041279 615143424 293.3G Microsoft basic data
/dev/nvme0n1p5 867041280 1000212479 133171200  63.5G Linux filesystemDisk /dev/loop8: 500 KiB, 512000 bytes, 1000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/sda: 114.61 GiB, 123060879360 bytes, 240353280 sectors
Disk model:  SanDisk 3.2Gen1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd9a95602Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1          32 240353279 240353248 114.6G  7 HPFS/NTFS/exFAT
root@jackey-song:~# blkid
/dev/nvme0n1p5: UUID="723696bd-9024-4a98-8094-70e5abd815c7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a95ec632-4081-464d-95e2-8260febba3df"
/dev/loop1: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/nvme0n1p3: LABEL="Windows" BLOCK_SIZE="512" UUID="FA00939A00935C87" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="a89e60f7-6279-4bc6-a2dd-41aca8b2a9e0"
/dev/nvme0n1p1: LABEL_FATBOOT="SYSTEM" LABEL="SYSTEM" UUID="18CE-BE31" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="c5507935-a83b-4c4b-8e76-6698106dc676"
/dev/nvme0n1p4: LABEL="Data" BLOCK_SIZE="512" UUID="A43AB43A3AB40B76" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8c5273ff-a1a9-4f08-a06c-fe6b16cc2992"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="78d2fc75-5222-454d-b35e-54daeab76cbd"
/dev/loop8: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop6: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop4: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop2: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop0: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop7: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/sda1: UUID="008D-B2D7" BLOCK_SIZE="512" TYPE="exfat" PARTUUID="d9a95602-01"
/dev/loop5: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/loop3: BLOCK_SIZE="131072" TYPE="squashfs"

Windows 系统使用的文件系统格式

Windows 操作系统主要使用以下几种文件系统:

1. NTFS(New Technology File System)

  • 最常用的文件系统:NTFS 是当前 Windows 操作系统的默认文件系统,广泛用于 Windows 7、8、10 和 11 版本。
  • 特点
    • 支持大容量的磁盘和文件(最大文件大小为 16TB,最大分区大小为 256TB)。
    • 提供文件和文件夹级别的权限控制(如访问控制列表 ACL)。
    • 支持文件压缩和加密(例如,EFS 加密)。
    • 提供日志记录功能(即使系统崩溃,文件系统也能恢复到一致的状态)。
    • 支持硬链接、符号链接等高级功能。
    • 对于磁盘碎片管理也有较好的优化。

2. FAT32(File Allocation Table 32)

  • 较老的文件系统:FAT32 是 FAT 系列文件系统的一种,曾是 Windows 系统常用的文件系统,主要用于较小的磁盘和移动存储设备(如 USB 闪存驱动器、外部硬盘等)。
  • 特点
    • 支持的最大分区大小为 32GB,最大单个文件大小为 4GB。
    • 兼容性好,几乎所有操作系统都可以读取 FAT32 格式的驱动器。
    • 不支持文件权限和加密等高级功能,安全性较差。

3. exFAT(Extended File Allocation Table)

  • 用于大容量存储设备:exFAT 是为了解决 FAT32 在大容量存储设备上的局限性而开发的文件系统,常用于 USB 闪存驱动器、SD 卡等设备,尤其是大于 32GB 的存储设备。
  • 特点
    • 支持单个文件大于 4GB,最大文件和分区大小可达到几 TB。
    • 提供较好的跨平台支持(Windows、macOS 和 Linux 都能读取 exFAT 格式的设备)。
    • 不支持 NTFS 的高级安全性和日志功能,但在大容量设备上表现良好。

4. ReFS(Resilient File System)

  • 用于服务器和高容错需求的环境:ReFS 是 Windows Server 2012 引入的一种文件系统,旨在提供比 NTFS 更高的容错性、可扩展性和性能,主要用于大型存储和数据中心环境。
  • 特点
    • 支持数据完整性校验,自动修复文件损坏。
    • 高效处理大容量数据集,适合存储和备份任务。
    • 不支持所有 NTFS 功能(如加密、压缩、符号链接等),主要面向企业级应用。

Linux 系统使用的文件系统格式

Linux 操作系统支持多种文件系统,每种文件系统有不同的特点和使用场景。以下是 Linux 上常见的文件系统:

1. ext4(Fourth Extended File System)

  • 最常用的文件系统:ext4 是目前 Linux 系统上最常见的文件系统,几乎所有主流的 Linux 发行版(如 Ubuntu、Debian、Fedora 等)默认使用 ext4。
  • 特点
    • 提供良好的性能和稳定性,支持大文件和大容量存储(最大支持 1 exabyte 的分区,最大文件大小 16 terabytes)。
    • 支持日志功能(journaling),保证系统崩溃时文件系统的一致性。
    • 支持大文件、延迟分配(delayed allocation)和写时复制(write barriers)等高级特性,优化性能。
    • 支持文件系统检查(fsck)以修复损坏的文件系统。

2. ext3(Third Extended File System)

  • ext4 的前身:ext3 是 ext4 的前一代文件系统,虽然现在不再是默认文件系统,但依然在一些老旧系统中使用。
  • 特点
    • 支持日志功能,可以提高系统的稳定性和恢复能力。
    • 相较于 ext4,ext3 在性能和支持大文件方面存在一些局限。
    • 兼容性较好,可以轻松从 ext2 升级到 ext3。

3. Btrfs(B-Tree File System)

  • 现代、功能丰富的文件系统:Btrfs 是一个较新的文件系统,旨在提供更强的管理功能,如快照、压缩、去重和增量备份等。
  • 特点
    • 支持内置的快照(snapshots)和克隆功能,可以实现高效的数据备份和恢复。
    • 支持压缩(例如 zlib 和 LZO 压缩)来节省存储空间。
    • 支持数据去重、检查点和动态磁盘管理。
    • 支持多设备池,可以通过 RAID 架构实现磁盘集群管理。
    • 目前仍在发展中,虽然已经具有生产环境的使用能力,但在稳定性和性能上与 ext4 相比仍有一些差距。

4. XFS

  • 高性能的文件系统:XFS 是一个高性能的文件系统,特别适合处理大文件和高并发的场景,通常用于数据中心和大规模存储环境。
  • 特点
    • 针对大文件和大容量存储做了优化,适用于需要大量并发和大数据的应用场景。
    • 支持文件系统扩展、日志功能和动态在线扩展。
    • 支持文件系统级别的空间预分配,减少碎片化。
    • 在大数据、视频流处理和高性能计算等领域表现优越。

5. ZFS(Zettabyte File System)

  • 高可靠性、高性能文件系统:ZFS 最早由 Sun Microsystems 开发,现在由 OpenZFS 作为开源项目维护。虽然 ZFS 最初是为 Solaris 操作系统设计的,但它也可以在 Linux 上使用(通常通过 OpenZFS 或 zfsutils)。
  • 特点
    • 支持高效的快照(snapshots)、克隆、压缩、去重和自修复等特性。
    • 支持数据完整性校验,自动检测和修复损坏的数据。
    • 支持存储池(zpool),允许在一个池中管理多个硬盘,并提供类似 RAID 的功能(如 RAID-Z)。
    • 对于大规模存储和数据保护需求非常强大,但在 Linux 上的支持相对较为复杂,安装和维护可能会有所困难。

6. F2FS(Flash-Friendly File System)

  • 面向闪存存储优化的文件系统:F2FS 是一个针对 NAND 闪存设备(如 SSD、eMMC、SD 卡等)优化的文件系统。
  • 特点
    • 针对闪存的特性进行了优化,减少写放大(write amplification)现象,延长存储设备的寿命。
    • 比传统文件系统(如 ext4)在闪存设备上的性能更优。
    • 支持文件系统检查、日志和数据完整性检查等功能。

7. ReiserFS

  • 曾经流行的文件系统:ReiserFS 曾是 Linux 上非常流行的文件系统,尤其在中小型文件的操作上表现出色。
  • 特点
    • 高效处理小文件,适合数据库和邮件服务器。
    • 提供日志功能,提高数据一致性。
  • 目前由于开发者的争议和缺乏更新,ReiserFS 已逐渐被其他文件系统(如 ext4 和 Btrfs)所取代。

8. FAT32 和 exFAT

  • 跨平台兼容性:虽然这两个文件系统主要用于 Windows 和嵌入式设备,但 Linux 也支持 FAT32 和 exFAT 文件系统,通常用于 USB 驱动器、SD 卡和其他外部存储设备。
  • 特点
    • FAT32:适用于较小的存储设备,但单个文件最大不能超过 4GB,且最大分区为 32GB。
    • exFAT:支持更大容量的存储设备和文件,大于 4GB 的文件不成问题,适用于大容量移动存储设备。



相关文章:

解决Ubuntu下无法装载 Windows D盘的问题

电脑安装了 Windows 和 Ubuntu 24.04 后,在Ubuntu系统上装载 D盘,发现无法装载错误如下: Error mounting /dev/nvme0n1p4 at /media/jackeysong/Data: wrong fs type, bad option, bad superblock on /dev/nvme0n1p4, missing codepage or h…...

详细介绍如何使用rapidjson读取json文件

本文主要详细介绍如何使用rapidjson库来实现.json文件的读取,分为相关基础介绍、结合简单示例进行基础介绍、结合复杂示例进行详细的函数实现介绍等三部分。 一、相关基础 1、Json文件中的{} 和 [] 在 JSON 文件中,{} 和 [] 分别表示不同的数据结构&…...

Mybatis 如何复用 SQL

比如你的Mapper是这样写的: 但这个接口是没有分页的,你还想再写一个有分页的查询接口,两个接口SQL一模一样,只是多了分页特性。你可以直接重载一个方法,增加分页参数,即可复用该SQL。如下:...

使用 Python 操作 MySQL 数据库的实用工具类:MySQLHandler

操作数据库是非常常见的需求,使用 Python 和 pymysql 库封装一个通用的 MySQL 数据库操作工具类,并通过示例演示如何使用这个工具类高效地管理数据库。 工具类的核心代码解析 MySQLHandler 类简介 MySQLHandler 是一个 Python 类,用于简化…...

C++ 内存管理:原理、技巧与实战

目录 第一章:C++ 内存管理基础 1.1 C++ 内存布局剖析 1.2 内存分配与释放:核心机制详解 1.2.1 new/delete 操作符 1.2.2 malloc/free 函数 第二章:智能指针 —— 内存管理利器 2.1 智能指针概览 2.2 常用智能指针类型 2.2.1 unique_ptr 2.2.2 shared_ptr 2.2.3 we…...

算法学习(17)—— FloodFill算法

目录 关于FloodFill算法 部分OJ题详解 733. 图像渲染 200. 岛屿数量 695. 岛屿的最大面积 130. 被围绕的区域 417. 太平洋大西洋水流问题 529. 扫雷问题 LCR130. 衣橱整理 关于FloodFill算法 爆搜,深搜,回溯的算法原理并不难,这类题…...

Kubernetes ConfigMap的创建与使用

前提条件 拥有Kubernetes集群环境,可参考:Kubernetes集群搭建理解Kubernetes部署知识,可参考:使用Kubernetes部署第一个应用 、Deloyment控制器 ConfigMap简介 ConfigMap 是 Kubernetes(通常简称为 K8s)中…...

灵当CRM uploadfile.php 文件上传致RCE漏洞复现

0x01 产品简介 灵当CRM是一款专为中小企业打造的智能客户关系管理工具,由上海灵当信息科技有限公司开发并运营。广泛应用于金融、教育、医疗、IT服务、房地产等多个行业领域,帮助企业实现客户个性化管理需求,提升企业竞争力。无论是新客户开拓、老客户维护,还是销售过程管…...

老旧小区用电安全保护装置#限流式防火保护器参数介绍#

摘要 随着居民住宅区用电负荷的增加,用电安全问题日益突出,火灾隐患频繁发生。防火限流式保护器作为一种新型电气安全设备,能够有效预防因电气故障引发的火灾事故。本文介绍了防火限流式保护器的工作原理、技术特点及其在居民住宅区用电系统…...

在git commit之前让其自动执行一次git pull命令

文章目录 背景原因编写脚本测试效果 背景原因 有时候可以看到项目的git 提交日志里好多 Merge branch ‘master’ of …记录。这些记录是怎么产生的呢? 是因为在本地操作 git add . 、 git commit -m "xxxxx"时,没有提前进行git pull操作&…...

【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(2023/12/1更新)

文章目录 一、前言二、ShaderGraph1.什么是ShaderGraph2.在使用ShaderGraph时需要注意以下几点:3.优势4.项目 三、实例效果边缘发光进阶:带方向的菲涅尔边缘光效果裁剪进阶 带边缘色的裁剪溶解进阶 带边缘色溶解卡通阴影水波纹积雪效果不锈钢效果、冰晶效…...

单机和微服务的区别,微服务有什么问题?数据一致性问题怎么解决?幂等问题怎么解决?

单机和微服务的区别,微服务有什么问题?数据一致性问题怎么解决?幂等问题怎么解决? 单机架构和微服务架构在设计理念、部署和扩展性上有显著区别。 单机架构 vs 微服务架构 单机架构 定义:所有组件(前端…...

McDonald‘s Event-Driven Architecture 麦当劳事件驱动架构

原文链接 1 mcdonalds-technical-blog/ 原文链接 2 mcdonalds-technical-blog/ 麦当劳在异步、事务性和分析性处理用例中使用跨技术栈的事件,包括移动订单进度跟踪和向客户发送营销通信(交易和促销)。 统一事件平台(unified eve…...

Clickhouse(Centos)

地址信息 官网地址:Fast Open-Source OLAP DBMS - ClickHouse 下载地址:packages.clickhouse.com/rpm/stable/ 1.clickhouse-client-23.1.3.5.x86_64.rpm 2.clickhouse-common-static-23.1.3.5.x86_64.rpm 3.clickhouse-common-static-dbg-23.1.3.5.x86_…...

赛博错题本

机构抽象老师非得让我们整一个错题本,我寻思都学计算机了,还在整高中做题呢一套是什么意思呢,更何况考试也就一周一次,你整个本完完全全没有必要,整个赛博错题本得了。以后错题都会存在这里,基本上一周一更…...

【MySQL初阶】Ubuntu 环境安装 MySQL

🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 Ubuntu 系统安装 MySQL 的相关内容。 如果看到最后您觉得这篇…...

【Kubernetes 指南】基础入门——Kubernetes 基本概念(二)

目录 二、Pod 1、Pod 简介 2、Pod 图示 3、nginx 容器 二、Pod 1、Pod 简介 - Kubernetes 使用 Pod 来管理容器,每个 Pod 可以包含一个或多个紧密关联的容器。 - Pod 是一组紧密关联的容器集合,它们共享 PID、IPC、Network 和 UTS namespace&#…...

Ubuntu系统下 npm install -g tauri 报错问题处理

处理在安装 Tauri 时遇到的问题,可以按照以下步骤进行操作 npm install -g taurinpm warn deprecated inflight1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async …...

数字逻辑(六)——下载Digital软件

Digital是一种用于设计和仿真数字逻辑电路的教育工具,它是免费、开源和跨平台的。这款软件十分适合新人,可以使用画简单的电路。 1 下载Digital软件 首先Digital的下载地址是: https://github.com/hneemann/Digital ​ 下载完成之后&…...

Ruby Raider使用教程

Ruby Raider是什么? Ruby Raider 是一款生成器和脚手架 gem,可让 UI 测试自动化更容易 Github链接:https://github.com/RaiderHQ/ruby_raider 目前支持的框架 Web自动化测试 Cucumber and Selenium Rspec and Selenium Cucumber and Wa…...

音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现

音视频入门基础:AAC专题系列文章: 音视频入门基础:AAC专题(1)——AAC官方文档下载 音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件 音视频入门基础:AAC…...

Spring Boot 中的 @Scheduled 定时任务以及开关控制

Scheduled注解是Spring框架(包括Spring Boot)中用于实现定时任务的一种方式。以下是对Scheduled注解的详细解析: 一、基本概念 Scheduled注解允许开发者在Spring容器中定义定时任务。通过简单地在一个方法上添加Scheduled注解,S…...

基于PXE与NFS共享的Ubuntu安装配置过程

假设存在服务器A、B、C 其中A为待装系统的服务器,DHCP(IP池:192.168.0.150~192.168.0.160),假设需要安装的系统为Ubuntu 22.04 Desktop 其中B为PXE服务端服务器,IP: 192.168.0.100,这里将以Cent…...

Dots 常用操作

游戏中有多个蚂蚁群落,每个蚂蚁属于一个群落,如何设计数据结构? 方法1:为蚂蚁组件添加一个属性 ID,会造成逻辑中大量分支语句,如果分支语句逻辑不平衡可能带来 Job 调度问题,每个蚂蚁会有一份蚂…...

力扣-图论-20【算法学习day.70】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

ModbusTCP从站转Profinet主站案例

一. 案例背景 在复杂的工业自动化场景中,企业常常会采用不同品牌的设备来构建生产系统。西门子SINAMICS G120变频器以其高性能、高精度的速度和转矩控制功能,在电机驱动领域应用广泛。施耐德M580可编程逻辑控制器则以强大的逻辑控制和数据处理能力著称&…...

Linux 线程池

1.概念介绍 线程池是一种多线程处理形式,它维护着多个线程,这些线程处于等待状态,随时准备接受任务并执行。线程池的主要目的是为了提高系统的性能和资源利用率,避免在处理短时间任务时频繁创建和销毁线程所带来的开销。 线程池…...

计算机视觉目标检测-1

文章目录 摘要Abstract1.目标检测任务描述1.1 目标检测分类算法1.2 目标定位的简单实现思路1.2.1 回归位置 2.R-CNN2.1 目标检测-Overfeat模型2.1.1 滑动窗口 2.2 目标检测-RCNN模型2.2.1 非极大抑制(NMS) 2.3 目标检测评价指标 3.SPPNet3.1 spatial pyr…...

2024最新鸿蒙开发面试题合集(一)-HarmonyOS NEXT Release(API 12 Release)

1. HarmonyOS应用打包后的文件扩展名是? 打包后的文件扩展名为.hap(HarmonyOS Ability Package),这是HarmonyOS应用的标准包格式 2. 页面和自定义组件生命周期有哪些? 页面和自定义组件生命周期说明 有Entry装饰器的component组件的生命…...

HarmonyOS NEXT 实战之元服务:静态案例效果--航空出行

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图1完整代码案例如下: import { authentication } …...

详解 Python 中的json.loads和json.dumps方法:中英双语

中文版 详解 Python 中的 json.loads 和 json.dumps 方法 在 Python 的标准库中,json 模块用于处理 JSON 数据格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互以及数据存储。json.loads …...

成方金融科技后端部分笔试题 - 解析

单选题 1.以下关于JAVA自动类型转换,描述错误的是哪一项?(B) A.byte->short B.char->short C.char->int D.float->double 2.请选择运行以下代码后,系统显示的内容什么?(B) public class Test {static {int x1;}static int x,y;publ…...

互联网视频云平台EasyDSS无人机推流直播技术如何助力野生动植物保护工作?

在当今社会,随着科技的飞速发展,无人机技术已经广泛应用于各个领域,为我们的生活带来了诸多便利。而在动植物保护工作中,无人机的应用更是为这一领域注入了新的活力。EasyDSS,作为一款集视频处理、分发、存储于一体的综…...

Vue3 中使用axios

1.安装axios、js-cookie、pinia axios命令行: npm install axios js-cookie命令行: npm install js-cookie store命令行: npm install pinia 2.配置文件 (1)缓存文件配置 src/plugins/auth.js const sessionCache {set (key, valu…...

【JAVA高级篇教学】第五篇:OpenFeign 微服务调用注意事项

在微服务架构中,OpenFeign 是一种常用的 HTTP 客户端工具,用于实现服务之间的调用。它提供了声明式的接口调用方式,大幅简化了开发工作。然而,在实际使用中,需要注意一些细节,尤其是在处理 GET、POST 请求和…...

Llama 3 简介(一)

目录 1. 引言 1.1 Llama 3 的简介 1.2 性能评估 1.3 开源计划 1.4 多模态扩展 ps 1. 缩放法则 2. 超额训练(Over-training) 3. 计算训练预算 4. 如何逐步估算和确定最优模型? 2. 概述 2.1 Llama 3 语言模型开发两个主要阶段 2.2…...

路由器做WPAD、VPN、透明代理中之间一个

本文章将采用家中TP-Link路由器 路由器进行配置DNS DNS理解知识本文DNS描述参考:网络安全基础知识&中间件简单介绍_计算机网络中间件-CSDN博客 TP LINK未知的错误,错误编号:-22025 TP-LINK 认证界面地址:https://realnam…...

Xcode 16 编译弹窗问题、编译通过无法,编译通过打包等问题汇总

问题1:打包的过程中不断提示 :codesign 想要访问你的钥匙串中的密钥“develop 或者distribution 证书” 解决:打开钥匙串,点击证书---显示简介---信任----改为始终信任 (记住 :不能只修改钥匙的显示简介的…...

【编辑器扩展】打开持久化路径/缓存路径/DataPath/StreamingAssetsPath文件夹

代码 [MenuItem("Assets/Open Explorer/PersistentDataPath")]public static void OpenPersistentDataPath(){Application.OpenURL(Application.persistentDataPath);}[MenuItem("Assets/Open Explorer/DataPath")]public static void OpenDataPath(){Appl…...

shardingsphere分库分表项目实践1-让shardingsphere运行起来

学习新技术最快的方式就是: 1. 先找一个比较完善的demo跑起来 2. 弄清楚用法:配置、原理、使用场景 3. 移植到自己项目上,按照自己需求进行修改优化。 找demo项目的方法:优先去官方git库找,如果没有或者过于简单那么…...

Java预加载

预加载(Preload)是一种在程序运行之前预先加载所需资源或对象的优化技术,旨在提高程序的性能和响应速度。以下是对预加载的详细解释: 一、预加载的定义 预加载是指在程序实际运行之前,将预计会频繁使用的资源&#x…...

Vue3之状态管理Vuex

Vuex作为Vue.js的官方状态管理库,在大型或复杂的前端项目中扮演着至关重要的角色。本文将从Vuex的原理、特点、应用场景等多个方面进行深入解析,并通过代码示例展示如何在Vuex中实现特定功能。 一、Vuex原理 Vuex是一个专为Vue.js应用程序开发的状态管…...

优化 invite_codes 表的 SQL 创建语句

-- auto-generated definition create table invite_codes (id int auto_incrementprimary key,invite_code varchar(6) not null comment 邀请码,6位整数,确保在有效期内…...

ctfhub disable_functions关卡

1.CTFHub Bypass disable_function —— LD_PRELOAD 2.CTFHub Bypass disable_function —— ShellShock 3.CTFHub Bypass disable_function —— Apache Mod CGI 4.CTFHub Bypass disable_function —— 攻击PHP-FPM 5.CTFHub Bypass disable_function —— GC UAF 6.CTFHub B…...

Pikachu 漏洞练习平台 XXE漏洞学习记录

懒得自己搭建的可以直接FOFA找别人的靶场玩 FOFA "Pikachu 漏洞练习平台" 开始 随便输入个包含命名实体&#xff08;内部实体&#xff09;的xml数据&#xff08;以下代码中xxe是命名实体的实体名称&#xff09;&#xff1a; <?xml version"1.0"?>…...

机器学习基础 衡量模型性能指标

目录 1 前言 ​编辑1.1 错误率(Error rate)&精度(Accuracy)&误差(Error)&#xff1a; 1.2 过拟合(overfitting): 训练误差小&#xff0c;测试误差大 1.3 欠拟合(underfitting)&#xff1a;训练误差大&#xff0c;测试误差大 1.4 MSE: 1.5 RMSE: 1.6 MAE: 1.7 R-S…...

C#—内建接口: IEnumerable与IEnumerator接口详解

IEnumerable接口 在C#中&#xff0c;IEnumerable 是一个泛型接口&#xff0c;它表示一个可以通过 IEnumerator 迭代器进行迭代枚举的集合。这个接口是非常基础且重要的&#xff0c;因为它允许开发者以一致的方式遍历任何实现了该接口的集合&#xff0c;无论是数组、列表、自定…...

java日志框架:slf4j、jul(java.util.logging)、 log4j、 logback

SLF4J--抽象接口 SLF4J (Simple Logging Facade for Java) 是一个为各种 Java 日志框架提供简单统一接口的库。它的主要目的是将应用程序代码与具体的日志实现解耦&#xff0c;使得在不修改应用程序代码的情况下&#xff0c;可以轻松地切换不同的日志框架。 jul-to-slft4j.ja…...

SpringBoot 事务

事务是一组操作的集合, 是一个不可分割的操作.会把所有的操作作为一个整体, 一起向数据库提交或者是撤销操作请求. 所以这组操作要么同时成功, 要么同时失败. 为什么需要事务? 我们在进行程序开发时, 也会有事务的需求. 比如转账操作: 第一步&#xff1a;A 账户 -100 元. …...

airflow docker 安装

mkdir -p /root/airflow cd /root/airflow && mkdir -p ./dags ./logs ./plugins ./configcd /root/airflow/ wget https://airflow.apache.org/docs/apache-airflow/2.10.4/docker-compose.yaml nano docker-compose.yamlAIRFLOW__CORE__LOAD_EXAMPLES: false #初始化…...