@@ -21,6 +21,7 @@ import (
21
21
"github.com/IceWhaleTech/CasaOS-Common/utils/constants"
22
22
"github.com/IceWhaleTech/CasaOS-Common/utils/file"
23
23
"github.com/IceWhaleTech/CasaOS-Common/utils/logger"
24
+ "github.com/IceWhaleTech/CasaOS-LocalStorage/codegen"
24
25
"github.com/IceWhaleTech/CasaOS-LocalStorage/codegen/message_bus"
25
26
"github.com/IceWhaleTech/CasaOS-LocalStorage/common"
26
27
"github.com/IceWhaleTech/CasaOS-LocalStorage/model"
@@ -82,8 +83,6 @@ func (d *diskService) EnsureDefaultMergePoint() bool {
82
83
mountPoint := "/DATA"
83
84
sourceBasePath := constants .DefaultFilePath
84
85
85
- logger .Info ("ensure default merge point exists" , zap .String ("mount point" , mountPoint ), zap .String ("sourceBasePath" , sourceBasePath ))
86
-
87
86
existingMerges , err := MyService .LocalStorage ().GetMergeAllFromDB (& mountPoint )
88
87
if err != nil {
89
88
panic (err )
@@ -103,14 +102,30 @@ func (d *diskService) EnsureDefaultMergePoint() bool {
103
102
SourceBasePath : & sourceBasePath ,
104
103
}
105
104
106
- if err := MyService .LocalStorage ().CreateMerge (merge ); err != nil {
107
- if errors .Is (err , v2 .ErrMergeMountPointAlreadyExists ) {
108
- logger .Info (err .Error (), zap .String ("mount point" , mountPoint ))
109
- } else if errors .Is (err , v2 .ErrMountPointIsNotEmpty ) {
110
- logger .Error ("Mount point " + mountPoint + " is not empty" , zap .String ("mount point" , mountPoint ))
111
- return false
112
- } else {
113
- panic (err )
105
+ mounts , err := MyService .LocalStorage ().GetMounts (codegen.GetMountsParams {})
106
+ if err != nil {
107
+ logger .Error ("failed to get mount list from system" , zap .Error (err ))
108
+ return false
109
+ }
110
+ isExist := false
111
+ for _ , v := range mounts {
112
+ if v .MountPoint == mountPoint {
113
+ isExist = true
114
+ merge .SourceBasePath = v .Source
115
+ break
116
+ }
117
+ }
118
+
119
+ if ! isExist {
120
+ if err := MyService .LocalStorage ().CreateMerge (merge ); err != nil {
121
+ if errors .Is (err , v2 .ErrMergeMountPointAlreadyExists ) {
122
+ logger .Info (err .Error (), zap .String ("mount point" , mountPoint ))
123
+ } else if errors .Is (err , v2 .ErrMountPointIsNotEmpty ) {
124
+ logger .Error ("Mount point " + mountPoint + " is not empty" , zap .String ("mount point" , mountPoint ))
125
+ return false
126
+ } else {
127
+ panic (err )
128
+ }
114
129
}
115
130
}
116
131
@@ -146,7 +161,6 @@ func (d *diskService) SmartCTL(path string) model.SmartctlA {
146
161
var m model.SmartctlA
147
162
buf := command .ExecSmartCTLByPath (path )
148
163
if buf == nil {
149
- logger .Error ("failed to exec shell - smartctl exec error" )
150
164
if err := Cache .Add (key , m , time .Minute * 10 ); err != nil {
151
165
logger .Error ("failed to add cache" , zap .Error (err ), zap .String ("key" , key ))
152
166
}
@@ -788,6 +802,7 @@ func IsDiskSupported(d model.LSBLKModel) bool {
788
802
strings .Contains (d .SubSystems , "virtio" ) ||
789
803
strings .Contains (d .SubSystems , "block:scsi:vmbus:acpi" ) || // Microsoft Hyper-V
790
804
strings .Contains (d .SubSystems , "block:mmc:mmc_host:pci" ) ||
805
+ strings .Contains (d .SubSystems , "block:scsi:pci" ) ||
791
806
(d .Tran == "ata" && d .Type == "disk" ) || d .Tran == "usb"
792
807
}
793
808
func IsFormatSupported (d model.LSBLKModel ) bool {
0 commit comments