新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>sql数据库修复

sql数据库修复

超算平台(NSCC-GZRData 文件因磁盘空间不足保存失败损坏(2)

发布时间:2026/5/23 17:51:11  作者:Admin  阅读:24  

广告:

中山大学超算平台(NSCC-GZRData 文件因磁盘空间不足保存失败损坏(2)

ubuntu操作:
浏览器打开:http://770731.****.cn:8888/

df -h /GPUFS/sysu_yuhy_1/quanjiang

cd /GPUFS/sysu_yuhy_1/quanjiang


file_path <- "data8771236.RData"

问题:提示:No such file or directory。
你把 R 代码直接敲进了 Linux 的 bash 终端里,而不是先进入 R 环境,所以系统会报错 No such file or directory。

先进入 R 环境 R

先试试这两个命令,看看超算有没有预装 R:

# 1. 检查有没有加载模块
module avail | grep -i R

# 2. 检查有没有其他路径的 R
which R Rscript /usr/bin/R /usr/local/bin/R

如果没有预装模块,你可以用下面的方法安装:

# 先更新源
sudo apt update
sudo apt install -y r-base r-base-dev


# 1. 先备份文件(防止搞坏)
cp data8771236.RData data8771236_backup.RData --省略

gzip -dc data8771236.RData > temp_uncompressed_data

方法 2:命令行工具修复(超算必用,修复截断 RData)

如果 R 内修复失败,用超算自带的gzip工具修复(RData 默认 gzip 压缩):

# 进入文件目录
cd /GPUFS/sysu_yuhy_1/quanjiang

# 备份损坏文件(必须做!)
cp 你的文件.RData 你的文件_backup.RData

# 修复压缩包
gzip -t data8771236.RData 2> repair.log
gzip -dc data8771236.RData > temp_uncompressed

修复完成后,回到 R 重新加载:

load("temp_uncompressed")

第一步:先检查文件的真实状态
在终端执行这两个命令,看看文件到底是什么情况:

# 1. 查看文件前100个字节的十六进制
head -c 100 data8771236.RData | xxd

# 2. 查看文件大小,确认是不是比你预期的小很多
ls -lh data8771236.RData


从 xxd 的结果可以看到,文件开头是 RDX3,这是标准的未压缩 RData 格式(对应 R 的 save(..., compress=FALSE) 生成的文件),不是 gzip 压缩的,所以用 gzip -dc 解压会提示格式错误


3 高校 / 通用超算快照恢复方法
进入你的文件目录,执行:
ls .snapshot
# 示例:从快照恢复文件
cp .snapshot/daily.2025-05-20/你的文件.RData ./恢复的文件.RData

sudo apt install r-base r-base-dev


或者你联系平台管理员,提交超算工单 / 联系管理员

提交:我的 RData 文件因磁盘空间不足保存失败损坏,请求恢复文件系统自动快照」
RStudio 是 R 的图形界面编辑器,不能独立运行,所以必须先安装 R 语言本体,再装 RStudio
安装的时候,认准 RStudio Desktop Free 就不会装错
桌面会出现 RStudio 的蓝色图标,双击即可打开。
首次打开时,RStudio 会自动识别你安装的 R 版本,如果没识别到,可以手动设置:
打开 Tools → Global Options → General → R version
点击 Change,找到你安装的 R.exe 文件(比如 D:\Program Files\R\R-4.4.1\bin\x64\R.exe),确认即可。

version

打开 RStudio,执行加载命令:

load("data8771236.RData", verbose=TRUE)
# 加载成功后,立刻保存为新文件
save.image("recovered_data.RData")


或者:
# 把路径换成你文件的实际位置
file_path <- "G:/temp/20260523-300/data8771236.RData"

# 尝试加载文件
load(file_path, verbose = TRUE)

# 如果加载成功,立刻保存为新文件,避免再次损坏
save.image("G:/temp/20260523-300/recovered_data.RData")


# 方法1:改用双反斜杠写法
file_path <- "G:\\temp\\20260523300\\data8771236.RData"
load(file_path, verbose = TRUE)

# 方法2:先切换到文件所在目录,再直接读取(最稳妥)
setwd("G:/temp/20260523-300/") # 切换工作目录到文件所在文件夹
load("data8771236.RData", verbose = TRUE)


错误于load(file_path, verbose = TRUE): 读取链结时发生了错误
先试试用二进制方式读取文件,看看能不能解析出数据:

file_path <- "G:/temp/20260523300/data8771236.RData"
con <- file(file_path, "rb")
# 先读取前 1000 字节,看看数据是否可读
raw_data <- readBin(con, what = raw(), n = 1000)
close(con)
head(raw_data)

如果这一步能输出内容,说明文件的开头数据是完好的,还有机会恢复。
用 qs 包的 qread() 尝试读取(成功率较高)

qs 包的读取方式比 load() 更容错,有时能读取损坏的 RData:

# 安装 qs 包
install.packages("qs")
library(qs)

# 尝试读取文件
file_path <- "G:/temp/20260523300/data8771236.RData"
data <- try(qread(file_path), silent = TRUE)
if (!inherits(data, "try-error")) {
# 如果读取成功,立刻保存为新文件
saveRDS(data, file = "G:/temp/20260523300/recovered_data.rds")
cat("数据读取成功!已保存为 recovered_data.rds")
} else {
cat("qs 读取失败,尝试下一个方案")
}

con <- file(file_path, "rb", blocking = FALSE)
raw <- try(readBin(con, what = raw(), n = 1e8), silent = TRUE)
close(con)
if (!inherits(raw, "try-error")) {
cat("✅ 成功读取了部分原始数据,文件没有完全损坏")
}

下面的方法:

file_path <- "G:/temp/20260523300/data8771236.RData"

# 创建一个空环境,用来存放能读取到的数据
env <- new.env()

# 尝试加载文件到这个环境中
tryCatch({
load(file_path, envir = env, verbose = TRUE)
cat("✅ 成功加载!环境中的对象有:", ls(env))
}, error = function(e) {
cat("❌ 加载过程中出错:", e$message, "\n")
# 查看环境里已经加载了什么
cat("已成功加载的对象:", ls(env))
})

# 如果有部分对象被加载,立刻保存
if (length(ls(env)) > 0) {
save(list = ls(env), file = "G:/temp/20260523300/partial_recovered.RData", envir = env)
cat("✅ 已将部分恢复的数据保存为 partial_recovered.RData")
}

广告:

相关文章
RData
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技