feat: Adjust hard drive mounting logic (#10326)

This commit is contained in:
CityFun 2025-09-10 13:50:51 +08:00 committed by GitHub
parent aa718eef88
commit 3a447b02a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 9 deletions

View file

@ -5,13 +5,14 @@ type DiskPartitionRequest struct {
Filesystem string `json:"filesystem" validate:"required,oneof=ext4 xfs"`
Label string `json:"label"`
AutoMount bool `json:"autoMount"`
MountPoint string `json:"mountPoint"`
MountPoint string `json:"mountPoint" validate:"required"`
}
type DiskMountRequest struct {
Device string `json:"device" validate:"required"`
MountPoint string `json:"mountPoint" validate:"required"`
Filesystem string `json:"filesystem" validate:"required,oneof=ext4 xfs"`
AutoMount bool `json:"autoMount"`
}
type DiskUnmountRequest struct {

View file

@ -81,11 +81,12 @@ func (s *DiskService) PartitionDisk(req request.DiskPartitionRequest) (string, e
return "", buserr.WithErr("FormatDiskErr", err)
}
if req.AutoMount && req.MountPoint != "" {
if req.MountPoint != "" {
mountReq := request.DiskMountRequest{
Device: partition,
MountPoint: req.MountPoint,
Filesystem: req.Filesystem,
AutoMount: req.AutoMount,
}
if err := s.MountDisk(mountReq); err != nil {
return "", buserr.WithErr("MountDiskErr", err)
@ -122,10 +123,11 @@ func (s *DiskService) MountDisk(req request.DiskMountRequest) error {
if err := cmdMgr.RunBashC(fmt.Sprintf("mount -t %s %s %s", req.Filesystem, req.Device, req.MountPoint)); err != nil {
return buserr.WithErr("MountDiskErr", err)
}
if req.AutoMount {
if err := addToFstabWithOptions(req.Device, req.MountPoint, req.Filesystem, ""); err != nil {
return buserr.WithErr("MountDiskErr", err)
}
}
return nil
}

View file

@ -2737,7 +2737,7 @@ const message = {
unmounted: '未挂载',
cannotOperate: '无法操作',
systemDiskHelper: '提示:当前磁盘为系统盘无法进行操作',
autoMount: '自动挂载',
autoMount: '开机自动挂载',
model: '设备型号',
diskType: '磁盘类型',
serial: '序列号',

View file

@ -27,9 +27,6 @@
<el-radio-button label="xfs" value="xfs" />
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('disk.autoMount')" prop="autoMount">
<el-switch v-model="form.autoMount" />
</el-form-item>
<el-form-item :label="$t('disk.mountPoint')" prop="mountPoint">
<el-input v-model="form.mountPoint">
<template #prepend>
@ -37,6 +34,9 @@
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('disk.autoMount')" prop="autoMount">
<el-switch v-model="form.autoMount" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="handleClose" :disabled="loading">{{ $t('commons.button.cancel') }}</el-button>